創建java類並實例化類對象例一
1.面向對象的編程關注於類的設計
2.設計類實際上就是設計類的成員
3.基本的類的成員,屬性(成員變量)&方法
面向對象思想的落地法則一:
1.設計類,並設計類的成員(成員變量&成員方法)
2.通過類,來創建類的對象(也稱作類的實例化)
public class zoo { public static void main(String[] args) { //基本數據類型的聲明,數據類型 變量名=初始化值 //類的實例化:如a1就是一個對象 Animal a1=new Animal(); //通過對象調用屬性 a1.name="陽陽"; a1.age=3; System.out.println("name:"+a1.name+" age:"+a1.age); //通過對象調用方法 a1.eat(); a1.sleep(); } } class Animal{ //1.屬性 String name; int age; //2.方法 public void eat(){ System.out.println("動物進食"); } public void sleep(){ System.out.println("動物睡覺"); } //getName是得到name的值 public String getName(){ return name; } //setName是給name設計一個值 public void setName(String n){ name=n; } }

二、創建多個對象,彼此各自擁有一套類的屬性,當對其中一個屬性進行修改時,不會影響到其他對象的屬性
類對象的內存解析
public class zoo { public static void main(String[] args) { int i = 10; //基本數據類型的聲明,數據類型 變量名=初始化值 //類的實例化:如a1就是一個對象 Animal a1 = new Animal(); //通過對象調用屬性 a1.name = "陽陽"; a1.age = 3; System.out.println("name:" + a1.name + " age:" + a1.age); //通過對象調用方法 a1.eat(); a1.sleep(); //再創建一個類的對象 Animal a2 = new Animal(); System.out.println("name:" + a2.name + " age:" + a2.age); a2.name = "小花"; System.out.println("name:" + a1.name + " age:" + a1.age); System.out.println("name:" + a2.name + " age:" + a2.age); //a3不意味着相較於啊a1重新創建的一個對象,而是a1與a3公用一個對象實體 Animal a3 = a1; System.out.println("name:" + a3.name + " age:" + a3.age);//與a1一樣 a3.name = "維尼熊"; System.out.println("name:" + a1.name + " age:" + a1.age); } } class Animal { //1.屬性 String name; int age; //2.方法 public void eat() { System.out.println("動物進食"); } public void sleep() { System.out.println("動物睡覺"); } //getName是得到name的值 public String getName() { return name; } //setName是給name設計一個值 public void setName(String n) { name = n; } }

三、類的屬性(成員變量)
成員變量vs局部變量
局部變量:是在某個方法中的變量
成員變量:在類中定義的變量
在類中沒有在其他方法中定義的變量就是成員變量
如public class tip{
int j=10;
}
這個里面的j就是成員變量
public void setName(String n){}
中的n就是一個局部變量
或者是在方法里面定義的也叫局部變量如:
public void addAge(){
int i=2;
age +=i;
}
中的int i=2;這個也是局部變量
成員變量和局部變量的相同點:
1.格式都一樣: 數據類型 變量名 = 初始化值
2.都有作用域:局部變量作用在它所存在的方法中,方法變量作用在它所存在的類中。
一旦出了它們所存在的范圍就不能使用,除非通過對象的調用(如:.name來調用)
成員變量和局部變量的不同點:
1.聲明的位置不同:成員變量聲明在類里,方法外。局部變量聲明在方法內,和方法的形參部分(public void setName(String n){}的n)
代碼塊內
2.成員變量的修飾符有四個:public、private、protected、缺省(就是省略不寫)(如public class v{
int b=2;
}這里的int前面可以加修飾符)
局部變量沒有修飾符,與所在的方法修飾符一樣(如public void addAge(){
int i=2;
age +=i;
}這里的i是局部變量,修飾符就是方法的修飾符public)
3.初始化值:無論哪種變量都有初始化值,成員變量如果沒有賦值不同的數據類型則有默認的初始化值。
局部變量一定要顯示賦值,因為局部變量沒有默認的初始化值
4.二者在內存中存放的位置不同:成員變量存在於堆空間中,局部變量存在於棧空間中
四、類的方法:提供某種功能的實現
1.格式:權限修飾符(public、private、protected、缺省(就是省略不寫)) 返回值類型(void:無返回值/具體返回值) 方法名(形參,String等){}
2.關於返回值類型:void,表明不需要返回值。
如:public void eat{
System.out.println("進食");
}
有返回值的類型:在方法最后一定有return+返回值類型對應的變量
如:public int getAge(){
return age;
}
記憶:void與return不能同時出現在一個方法內,像一對冤家
3.方法內可以調用本類的其他方法或屬性,但是不能在方法內定義方法

//(1) public class W { String name; int age; String sex; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public void study(){ System.out.println("studying"); } public void showAge(){ System.out.println(age); } public int addAge(int i){ age+=i; return age; } public static void main(String[] args) { W a=new W(); a.study(); a.showAge(); a.addAge(2); a.showAge();//相等於System。out。println(a.age); System.out.println(); //(2) W b=new W(); b.showAge(); a.showAge(); } }
public class circle { public static void main(String[] args) { Tcircle c1=new Tcircle(); c1.r=2.3; c1.findArea(); } } class Tcircle{ double r=1.0; //提供一個方法,用來獲取圓的面積 public void findArea(){ System.out.println(3.14 * r * r); } }
