Day_5面向對象
通過類的方式,來組織代碼,以對象的方式,封裝資料
1、 對象:具體的事物(屬性(變量):區分其他對象,行為(方法):對象的功能)
類:對對象的抽象,就是java在堆記憶體中new建立的實體。
2、消息:對象之間通過消息聯系(程式中調用相關方法)
目的對象(傳遞的對象) 方法的名稱(調用的方法)方法參數(執行效果不同)
1)一個對象可以接收多個消息,響應不一樣
2)相同消息給不同對象,所做的響應不同
3)發送方不需要知道接收方如何對請求予以響應的。
3、面向對象的特性:
封裝:隐藏底層的實作細節,對于操作人沒有影響。
繼承:(更好地進行抽象與分類,減少代碼和資料的備援,實作代碼的複用,提高可維護性)
子類繼承了父類的所有屬性(特殊與一般的關系)
有特殊關系的時候(老師和人),可以使用繼承。Cpu和電腦,就不能繼承,值屬于一部分。
多态:多種形态,必須先實作繼承,才能實作繼承
類:
public classPersonTest05 {
int age;
Stringname;
int weight;
//PersonTest05[] person=new PersonTest05[100];//通過綁定就以上屬性
public static void main(String[] args){
//建立一個對象
int x=5;
//new PersonTest05()建立真正的對象,并将起始位址傳回給person變量
PersonTest05person=new PersonTest05();//person隻是引用,指向堆上真正的對象
//通過 . 可以通路類的成員
person.name="蓉蓉";
person.age=18;
person.weight=40;
//PersonTest05 person2;
//person2.name="heihei";//沒有通過new一個真正的對象,所有沒有引用,錯誤的。
}
}//變量存放了誰的位址,就說明指向了誰,引用了誰。
4、成員變量的作用域是整個類。(成員變量有預設值,局部變量沒有預設值)
在局部變量的作用域内,起作用的是局部變量。即,成員變量被局部變量所隐藏。需要通路成員變量用.this通路
5、 方法(實作功能)
實作了代碼重用
person.computer(x,y); //調用方法computer,跳轉到方法内執行
public void computer(int a,int b){
int sum=a+b;
int sub=a-b;
System.out.println(sum);
System.out.println(sub);
}
每建立一個對象,就會配置設定新的空間,每個對象都有自己的成員變量,方法共享
6、 參數傳遞(不管參數的類型是什麼,參數傳遞永遠是值傳遞。)
基本類型:在方法内,形參的改變無法反作用于實參
引用類型:可以讓實參和形參指向相同的對象,進而可以通過形參來改變内部的值(成員變量的值)。但是,無法改變實參本身(引用本身)。
Class car{
String color=”紅色”
Int num=4;
//運作行為
Void run(){
System.out.println(color+num);
}
}
Class carDemo
{public static void main(String[] args){
Car c=new Car(); //c是類類型變量,指向對象
//改變顔色,指揮對象做事物,方式:對象。對象成員
c.color=”blue”;
c.run(); //藍色
Car c1=new Car();
C1.run; //紅色
}
}
public classBank5 {
int money;//餘額
public void despite(int amount){
money+=amount;
}
Public void withdraw(int amount){
Money=money-amount
}