Java 22 入门 面向对象进阶 static 关键字 静态成员属性 实例成员变量 静态成员方法 实例成员方法 代码块

 

 

 

 

 

 

静态成员变量 与实例成员变量

package com.ITheima;

public class User {
    // 在线人数信息,静态成员变量
    public static int onLineNumber;

    //实例成员变量
    private String name;
    private int age;

    public static void main(String[] args) {
        //1 类名.静态成员变量
        User.onLineNumber++;
        //注意 :同一个类中访问静态成员变量,类名可以不写
        System.out.println(onLineNumber);


        //2对象 实例成员变量
        User u1=new User();
        u1.name="张飞";
        u1.age=17;

        System.out.println(u1.name);
        System.out.println(u1.age);


        //静态成员变量(不推荐这样访问)
        u1.onLineNumber++;
        System.out.println(onLineNumber);
    }
}
View Code

 

 

package com.ITheima;

public class Student {
    private String name;
    private  int age;

    /**
     * 实例方法  :无static修饰 属于对象,通常表示对象直接的行为,可以访问对象的成员变量
     */
    public void study(){
        System.out.println(name+"在好好学习天天向上");
    }

    /**
     * 静态方法: 有static修饰,可以呗类和对象共享访问
     */
    public static void getMax(int a,int b){
        System.out.println(a>b?a:b);
    }

    public static void main(String[] args) {
        //1 类名.静态方法
        Student.getMax(100,20);
        //注意 在同一个类中访问静态方法 类名可以省略不写
        getMax(20,50);

        //2 对象.实例方法
        Student s=new Student();
        s.name="张全蛋";
        s.study();

        //3 对象.静态方法(不推荐)
        s.getMax(399,11);
    }
}
View Code

个人总结:

即 静态变量/方法为类的成员和方法  不需要实例化 就可以通过 类名.成员/方法 调用

  实例成员变量/方法  必须通过类实例化产生的对象 通过  对象.成员/方法调用

 

 

代码块

 

 静态代码块 代码

package com.ITheima._static_codeblock;

public class TestDemo {
    //类的静态成员变量
    public static String schoolName;

    //静态方法
    public static void main(String[] args) {
        //目标: 学习静态代码块的特点,基本作用
        System.out.println("===========main方法被执行输出=========");//2
        System.out.println(schoolName);//黑马程序员
    }


    /**
     *静态代码块随类加载 自动触发一次(优先执行)
     * 作用:可以在程序加载时进行静态数据的初始化操作(准备内容);
     *
     */
    static {
        System.out.println("静态代码块执行1");//1
        schoolName = "黑马程序员";
    }


}
View Code

构造代码块 代码

package com.ITheima._static_codeblock;

public class TestDemo1 {
    //实例成员变量
    private String name;
    private int age;

    //无参构造器执行
    /**
     * 构造代码块 优先构造器执行 
     * 与对象一起加载 ,自动触发
     */
    {
        System.out.println("==构造代码块被触发执行一次==");
        name="王二麻子";
    }

    public TestDemo1(){
        System.out.println("===构造器被触发执行===");
    }

    public static void main(String[] args) {
        //目标:学习构造代码块的特点,基本作用

        //实例化对象
        TestDemo1 s=new TestDemo1();
        System.out.println(s.name);

        TestDemo1 s1=new TestDemo1();
        System.out.println(s1.name);
    }
}
View Code

 

posted @ 2022-06-24 19:43  还有什么值得拥有  阅读(23)  评论(0编辑  收藏  举报