1.引用變量
一個類的基本內容是由成員變量、成員方法、構造函數構成的。
那其實成員變量中比較特殊的是可以引用變量。
在jvm存儲上,基本類型的數據是直接存儲的,而引用變量例如String,或自己創建的類,是會額外的棧去保存。
以下是一個實例:比如在人這個類中,可以有一個狗的成員變量,代表人養了這隻狗。狗並不是基本的數據類型,需要自己去編寫狗這個類。成員變量可以是其他的類的對象。
狗類:
public class Dog {
//成員變量:
String name;
int age;
//成員函數:
public void showInfo() {
System.out.println(this.name);
System.out.println(this.age);
}
//構造函數:
public Dog(String name,int age) {
this.name=name;
this.age=age;
}
}
人類:
public class Person {
//成員變量:
String name;
int age;
Dog dog;//引用類型,成員變量可以是其他的類的對象。
//成員方法:
public void showInfo() {
System.out.println(this.name);
System.out.println(this.age);
System.out.println("寵物:"+dog.name);
}
//構造函數:
public Person(String name,int age,Dog dog) {
this.name=name;
this.age=age;
this.dog=dog;
}
}
主函數:
public class Quote {
public static void main(String[]args) {
Dog dog1=new Dog("哈士奇",8);
Person p1=new Person("夢夢",19,dog1);
p1.showInfo();
}
}
輸出結果:2.靜態變量Static
public class Cat {
String name;
String color;
static int num;
public void joinHome() {
System.out.println(this.color +"的小貓 "+this.name +" 進來了!");
num++;
}
public Cat(String name,String color) {
this.name =name;
this.color=color;
}
}
主函數:
public class catNumber {
public static void main(String[]args) {
Cat cat1=new Cat("肥橘","黃色");
cat1.joinHome();
Cat cat2=new Cat("夜貓","黑白");
cat2.joinHome();
Cat cat3=new Cat("喫貨貓","純白");
cat3.joinHome();
//每一個對象都可以去訪問它
System.out.println(cat1.num);
System.out.println(cat2.num);
System.out.println(cat3.num);
//也可以直接用類去訪問
System.out.println(Cat.num);
}
}
運行結果: