1.什麼是類?什麼是對象?
1)現實生活是由不少不少對象組成的
基於對象抽出了類
2)對象:真實存在的單個的個體
類:類型、類別,表明一類個體
3)類中能夠包含:
3.1)全部對象所共有的特徵/屬性------變量
3.2)全部對象所共有的行爲-----------方法
4)一個類能夠建立多個對象,
同一類型的對象,結構相同,數據不一樣
5)類是對象的模板,對象是類的具體的實例
2.引用類型之間畫等號:
1)指向同一個對象
2)對其中一個引用的修改影響另外一個引用
eg:房子鑰匙
基本類型之間畫等號:
1)賦值
2)對其中一個變量的修改不會影響另外一個變量
eg:身份證複印件
3.null:空,沒有指向任何對象
若引用的值爲null,則該引用不能再進行任何操做了
若操做則NullPointerException空指針異常
語法:
引用
類型 引用類型變量 指向 對象
Student zs = new Student();
Student zs; //引用
int a; //變量
引用
數據類型 引用類型變量 指向 對象
Cell c = new Cell();
實參,形參
public static void main(String[] args){
String n = "zhangsan";
sayHi(n); //String name="zhangsan"; //實參
}
public static void sayHi(String name){ //形參
}java
面向過程的結構化設計的缺陷:
1.缺少對數據的封裝
2.數據和方法(操做數據)的分離
基本數據類型-------------不夠
數組類型-----------------不行
本身造數據類型-----------想裝什麼就裝什麼
高質量的代碼:
複用性好、擴展性好、維護性好、
可移植性好、效率好、健壯性好、可讀性好......數組
引用類型與基本類型學習
畫等號測試
null和NullPointerExceptionspa
Cell.java設計
package oo.day01; //格子類 public class Cell { int row; //行號 int col; //列號 void drop(){ //下落一格 row++; //行號增1 } void moveLeft(int n){ //左移n格 col-=n; //列號減n } String getCellInfo(){ //獲取格子的行號和列號 return row+","+col; //返回行列號 } }
CellTest.java指針
package oo.day01; //格子類的測試類 public class CellTest { public static void main(String[] args) { /* Cell c = new Cell(); c.row = 2; c.col = 5; c.drop(); c.moveLeft(3); String str = c.getCellInfo(); System.out.println(str); //3,2 */ Cell c = new Cell(); c.row = 2; c.col = 5; printWall(c); //Cell cc=c; c.drop(); //c.row=3 System.out.println("下落後:"); printWall(c); c.moveLeft(3); System.out.println("左移後:"); printWall(c); } //打牆+打格 public static void printWall(Cell cc){ for(int i=0;i<20;i++){ //行 for(int j=0;j<10;j++){ //列 if(i==cc.row && j==cc.col){ //行列匹配 System.out.print("* "); }else{ System.out.print("- "); } } System.out.println(); //換行 } } }
Student.javacode
package oo.day01; //學生類 public class Student { //成員變量 String name; int age; String address; //方法 void study(){ System.out.println(name+"在學習..."); } void sayHi(){ System.out.println("你們好,我叫"+name+",今年"+age+"歲了,家住"+address); } }
StudentTest.java對象
package oo.day01; //學生類的測試類 public class StudentTest { public static void main(String[] args) { //建立學生對象 Student zs = new Student(); //給成員變量賦值 zs.name = "zhangsan"; zs.age = 25; zs.address = "河北廊坊"; //調用方法 zs.study(); zs.sayHi(); Student ls = new Student(); ls.name = "lisi"; ls.age = 26; ls.address = "黑龍江佳木斯"; ls.study(); ls.sayHi(); //new以後每一個成員變量都有默認值 Student ww = new Student(); ww.study(); ww.sayHi(); } }
引用類型與null的演示blog
package oo.day01; //引用類型與null的演示 public class RefNullDemo { public static void main(String[] args) { Cell c = new Cell(); Cell cc = c; //指向同一個對象 c.row = 2; cc.row = 5; System.out.println(c.row); //5 Cell ccc = new Cell(); ccc.row = 6; ccc = null; //空,沒有指向任何對象 //ccc.row = 6; //NullPointerException空指針異常 } }