0
点赞
收藏
分享

微信扫一扫

VulnHub项目:MONEY HEIST: 1.0.1

深夜瞎琢磨 2023-06-08 阅读 81

常见代码块应用

  • 局部代码块
    在方法中出现,限定变量的生命周期
  • 构造代码块(初始化块)
    在类中方法外出现,多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,在调用构造方法前执行
  • 静态代码块
    在类中方法外出现,加上static修饰,用于给类初始化,在加载的时候就执行,只执行一次

练习代码

public class Demo1_Code {
    public static void main(String[] agrs) {
        {
            int a = 10;
            System.out.println(a);  // 局部代码块:限定变量的生命周期
        }
        Students s1 = new Students();  //调用空参构造
        s1.setName("张三");
        s1.setAge(27);
        System.out.println(s1.getName() + "---" + s1.getAge());
        System.out.println( "--————————————————————————————————————--" );
        Students s2 = new Students("李四",26);
        System.out.println(s2.getName()+"----"+s2.getAge());

    }
    static {   //静态代码块:类中方法外出现,加上static修饰,用于给类进行初始化,在加载的时候就执行,并且执行一次
        System.out.println("我是静态代码块");
    }
}
class Students {
    private String name;
    private int age;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    {   //构造代码块(初始化块):在类中方法外出现,多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,且在构造方法前执行
        System.out.println("我是构造代码块(初始化块)");
    }
    public Students() {          //空参构造
        System.out.println("空参构造");
    }
    public Students(String name, int age) {               //有参构造
        this.name = name;
        this.age = age;
        System.out.println("有参构造");
    }
}

执行结果

面向对象——继承

继承:让类和类之间产生关系,子父类关系

继承的好处:

  1. 提高代码的复用性
  2. 提高代码的维护性
  3. 让类与类之间产生关系,是多态的前提

继承的弊端:类的耦合性增强了

Java中类的继承特点

  1. Java只支持单继承,不支持多继承。一个子类只能有一个父类
  2. Java支持多层继承(如grandpa—father—son)
  3. 如果想用这个体系的所有功能用最底层的类创建对象
  4. 如果想看这个体系的共性功能看最顶层的类

练习代码

public class extendsTest {
    public static void main(String[]agrs){
        cat c = new cat();
        c.setName("咪咪");
        c.setColor("白色");
        c.eat();
        System.out.println(c.getColor()+"的猫咪叫"+c.getName());
    }
}
class animal{
    private String name;
    private String color;

    public animal() {                                   //空参构造
    }

    public animal(String name, String color) {          //有参构造
        this.name = name;
        this.color = color;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }}
    class cat extends animal{//继承父类的属性,并添加特有属性
        public void eat(){
            System.out.println("猫吃鱼");
        }
    }
    class dog extends animal{}

执行结果

继承需要注意

  1. 子类只能继承父类所有非私有的成员(成员方法和变量)
  2. 子类不能继承父类的构造方法,但是可以通过super关键字去访问父类构造方法
  3. 不要为了部分功能去继承
举报

相关推荐

0 条评论