Java类变量demo


public class Demo{
    public static void main(String []args){
    Dog dog1=new Dog(2,"大黄");
    Person p1=new Person(24,"xiaoqing",dog1);
    Person p2=new Person(12,"pipi",dog1);//p1和p2同时引用dog1,即指向dog1
                                         //所属的地址,如若一个改变,则dog1改变
    p1.showInfo();
    p1.dog.showInfo();

    Child ch1=new Child(4,"小二");
    ch1.join();
    Child ch2=new Child(5,"小三");
    ch2.join();
    System.out.println("共有"+Child.total);//此时total为静态变量/类变量
    //System.out.println("共有"+ch2.total);类名.类变量名/方法名.类变量名
    }
}


class Child{
    int age;
    String name;
    static int total=0;//total为静态变量,可被任一对象访问

    public Child(int age,String name){
    this.age=age;
    this.name=name;
    }
    public void join(){
    System.out.println("有一个小孩加入");
    total++;
    }
}

class Person{
    int age;
    String name;
    Dog dog;

    public Person(int age,String name,Dog dog){
    this.age=age;//第一个age表示对象的成员属性(变量),
                 //第二个age表示构造方法中传进来的参数
    this.name=name;
    this.dog=dog;
    } 
    public void showInfo(){
    System.out.println("人名是:"+this.name);
    }
}


class Dog{
    int age;
    String name;

    public Dog(int age,String name){
    this.age=age;
    this.name=name;
    }
    public void showInfo(){
    System.out.println("狗名是:"+this.name);
    }
}


你可能感兴趣的:(Java类变量demo)