this关键字、static关键字、代码块

一.this关键字

        在编程时,为了区分成员变量和局部变量,而是用this关键词

        this调用的是成员变量或者成员方法

        this在实际运行时,表示当前正在调用此方法的对象,在方法中可直接用this.进行调用

        this表示当前对象

public Student(int number,String name,String gender){
    this.number = number;
    this.name = name;
    this.gender = gender;
}

 

public class Student {
    int number;
    String name;
    String gender;

    public Student(){
        this(1025,"chc","boy");
    }

    public Student(int number,String name,String gender){
        this.number = number;
        this.name = name;
        this.gender = gender;
    }

    public  void study(){
        System.out.println(this.name + "好好学习!");
    }

    public void exam(){
        System.out.println(this.name + "认真考试!");
    }
    public static void main(String[] args) {
        Student student1 = new Student(1023,"GY","boy");
        System.out.println(student1.number);
        System.out.println(student1.name);
        System.out.println(student1.gender);
        System.out.println("--------");

        Student student2 = new Student(1024,"LLL","girl");
        System.out.println(student2.number);
        System.out.println(student2.name);
        System.out.println(student2.gender);
        System.out.println("--------");

        student1.study();
        student1.exam();

        System.out.println("--------");

        student2.study();
        student2.exam();
        System.out.println("--------");

        Student student3 = new Student();
        System.out.println(student3.number);
        System.out.println(student3.name);
        System.out.println(student3.gender);
        System.out.println("--------");

        student3.study();
        student3.exam();
    }

}
二.static 关键字

static修饰的变量计划书静态变量(类变量,与类一样,只有一份)

当所有类的对象的某个属性相同时,可以把他定义为静态

当类被加载时,静态变量也会被加载,优先于对象创建存在

静态的先被执行,可以被类,对象访问,非静态的使用只能通过对象

    static表示静态,可以修饰成员变量,成员方法,代码块,内部类
    类--class--静态代码  只有一份的存在
    静态:在内存中只有一份的存在

    public class Chinese{
        String name;
         // static修饰的变量计划书静态变量(类变量,与类一样,只有一份)
         // 当所有类的对象的某个属性相同时,可以把他定义为静态的
        static String country = "中国";
    }
    new Chinese();
        name = null;
        // country = "中国";
    new Chinese();
        name = null;
        // country = "中国";

        static修饰后的成员,随着类的加载而加载,先于对象而存在
        static修饰的成员变量内存中只有一份,适合将所有实例都相同的属
    性设计为静态(中国人类 国籍都是中国)    
        静态成员可以使用类名/对象名调用,一般建议使用类名访问

public class Chinese {
    String name;
    static String country = "中国";

    public static void main(String[] args) {
        System.out.println(Chinese.country); //静态变量,可通过类名直接访问
        System.out.println("--------");
        Chinese Chinese1 = new Chinese();
        Chinese1.name = "GY";
        System.out.println(Chinese1.name);
        System.out.println(Chinese1.country);//静态变量,也可以通过对象名访问
        System.out.println("--------");
        Chinese Chinese2 = new Chinese();
        Chinese2.name = "LLL";
        System.out.println(Chinese2.name);
        System.out.println("--------");
        Chinese.country = "中"; //改变静态变量的值,在后续的使用则会发生改变
        System.out.println(Chinese.country);
        System.out.println(Chinese1.country);
        System.out.println("--------");
    }
}
三.代码块

    代码块:定义在类中,类似一个没有名称的方法,分为实例代码块和静态代码块
        代码块没有名字,只能在满足条件是自动由系统调用
    {


    }

    static{


    }

    实例代码块:在创建对象时,被自动调用
    静态代码块:在类被加载时,被自动调用
                类什么时候被加载:
                    通过类名访问类中静态成员时,类会被加载
                    在一个类中使用main方法,也会加载类
                    创建对象也会加载类
                    类只会被加载一次

    如果有多个实例代码块或多个静态代码快,他们会按照先后顺序执行。
    实例代码块先于构造方法执行
    静态代码块-->静态方法-->实例代码块-->构造方法(非静态方法)

public class Demo {
    {
        System.out.println("实例代码块1");
    }
    {
        System.out.println("实例代码块2");
    }
    static{
        System.out.println("静态代码块1");
    }
    static{
        System.out.println("静态代码块2");
    }
    public static void test(){
        System.out.println("静态");
    }
    public Demo(){
        System.out.println("构造方法");
    }

    public static void main(String[] args) {
        test();
        Demo Demo1 = new Demo();
    }

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭天宇 abfore

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值