Java 第六天

Java入门构造方法、静态变量与静态方法

1.构造方法

构造方法的形式与注意事项

构造方法:对成员变量初始化。
写法:
关键词 类名(){

}
注意:构造方法没有返回值且无返回值位置。
构造方法是系统调用的,每创建一个对象,构造方法只会调用一次。
系统会根据你传入的参数来选择调用构造方法。

类的书写顺序

1.成员变量
2.构造方法
3.set/get方法
4.成员方法

构造函数在代码中的应用

    public static void main(String[] args) {
        Car c1 = new Car();
        c1.sayHi();
        Car c2 =new Car("自行车", "红色");
        c2.sayHi();
    }


}
class Car{
    private String name;
    private String color;
    //无参构造
    public Car(){
        name = "拖拉机";
        color = "黑色";
        System.out.println();
    }
    //有参构造
    public Car(String name, String color) {
        this.name = name;
        this.color = color;
        System.out.println();
    }
    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;
    }
    public void sayHi() {
        System.out.println(name + "  " +color);
    }

2.静态变量

静态变量(共享变量 被所有对象所共享)
关键词 static(修饰成员变量)
优点:可以节省内存空间。
静态变量的调用
1.可以使用对象.变量名调用(不推荐)。
2.直接使用类名调用(系统推荐)。
更好的区分成员变量和静态变量。

成员变量和静态变量区别
1.调用方式
成员变量:对象调用。
静态变量:对象和类名(推荐)都能调用。
2.在内存中的表现
成员变量:在堆内存中。
静态变量:在方法区的静态区。
3.所属不同
成员变量:成员变量属于对象。
静态变量:静态变量属于类 不依赖对象的创建。
4.生命周期
成员变量:随着对象的创建而创建,随着对象的销毁而销毁。
静态变量:随着类的加载而创建,随着程序的结束而销毁。

注意:类是优先于对象存在的

应用


    public static void main(String[] args) {
        student student1 = new student();
        student1.studnetName = "小明";
        student1.studentCity = "南通";
        student1.sayHi();
        student student2 =new student();
        student2.studnetName = "小红";
        student2.sayHi();
    }

}
class student{
    String studnetName;
    static String studentCity;
    public void sayHi() {
        System.out.println(studnetName + " " + studentCity);
    }

静态方法

静态变量(类变量)
静态方法(类方法)

静态方法(也是进栈执行)
和静态变量一样被加载到方法区的静态区。
静态方法 也是随着类的加载而加载。
注意:静态方法中不能使用成员变量。
静态方法被加载时可能还没有对象产生。
注意:也不能使用 this关键字。
静态方法的调用
1.使用对象调用(不推荐)。
2.直接使用类名调用(推荐)。
3.成员方法中可以调用成员方法和静态方法。
4.静态方法中不能调用成员方法,但可以调静态方法。
总结:静态的只能使用静态的。
应用

    public static void main(String[] args) {

        Test.fun2();
    }

}
class Test{
    int number1 = 10;
    static int number2 = 20;
    //成员方法中可以使用成员变量
    //也可以使用静态变量
    public void fun1() {
        //本类中调用本类的方法可以省略this或类名
        fun2();
        System.out.println(number1);
        System.out.println(number2);
    }


    public static void fun2() {

        //System.out.println(number1);
        System.out.println(number2);
        fun3();

    }
    public static void fun3() {
        int a = 10;
        System.out.println();
    }

}

猜你喜欢

转载自blog.csdn.net/guxin0729/article/details/82119168