构造函数,public static和private static属性区别

package com.web;

public class Test30 {
    
    
    public static void main(String[] args) {
    
    
        Cat cat1 = new Cat();
        cat1.name = "kitty";
        System.out.println("cat1.name = " + cat1.name);
        //System.out.println(this.name);错误写法,this只能在Cat类自己出现
        cat1.hello();
        System.out.println("======================");

        Cat cat2 = new Cat("ドラえもん");
        System.out.println("cat2.name = " + cat2.name);

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

        Cat cat3 = new Cat("mimi", 2);
        System.out.println("cat3.name = " + cat3.name);
        //System.out.println(cat3.age);错误写法,拿不到age,是private,用getAge去拿
        System.out.println("cat3.getAge = " + cat3.getAge());
        System.out.println("Cat.weight" + Cat.weight);
        //System.out.println(cat3.weight);必须类名调用
        //System.out.println(Cat.call1());无法调用
        //System.out.println(cat3.call2());无法调用
    }
}

class Cat {
    
    
    protected String name;
    private int age;
    //被public static修饰的属性除了可以被静态方法和非静态调用之外,还可以直接被类名和外部创建的对象调用。
    public static int weight = 10;
    //被private static修饰的属性可以被静态方法调用,但是只能被本类中的方法(可以是非静态的)调用,在外部创建这个类的对象或者直接使用这个类访问都是非法的。
    private static int height = 20;

    //静态调用
    public static void call1() {
    
    
        System.out.println(height);
    }

    //非静态调用
    public void call2() {
    
    
        System.out.println(height);
    }

    Cat cat = new Cat();//写在类中,方法外的对象

    public void call3() {
    
    
        Cat.call1();//静态调用
        //cat.call1();必须类名调用
        cat.call2();//非静态调用
        cat.call3();//递归调用
    }

    public int getAge() {
    
    
        return age;
    }

    public void hello() {
    
    
        System.out.println("hello" + this.name);
    }

    public Cat() {
    
    

    }

    public Cat(String name) {
    
    
        this.name = name;
    }

    public Cat(String name, int age) {
    
    
        this.name = name;
        this.age = age;
    }

}

猜你喜欢

转载自blog.csdn.net/djydjy3333/article/details/121435403