1、物件導向時相對面向過程而言
2、物件導向和面向過程都是一種思想
3、面向過程:強調的是功能行為
物件導向:將功能封裝進物件,強調的是具備了功能的物件。
4、物件導向是基於面向過程。
1、(面試) 說一下什麼是物件導向的思想?
答:
我知道貴公司現在在廣招人才,說明公司正在蒸蒸日上的發展,而面試官您現在就是在用物件導向的思想在思考問題,您在找一些具備專業程式設計功能的人來幫您完成公司的工作,而我就是那個具備專業程式設計功能的人 ,您找我就對了。您就是在使用我的程式設計功能,來為公司創造價值,當然,我還有其他的價值,比如溝通能力和管理能力,日後您也可以把我指揮為組長。不知道我的回答您是否滿意。
1、分析問題的時候採用:名詞提煉法
示例:人開門
思路:名詞提煉法:人 和門
描述人class 人
姓名 ;
年齡;開門(門)
描述門class 門
門軸;開()
2、類和物件的關係:
類:就是對現實生活中事物的描述。
物件:就是這類事物實實在在存在的個體。
3、物件導向的三個特徵:
l 封裝
l 繼承
l 多型
4、在以後的開發中如果用到物件:
先找物件,如果物件沒有就建立物件;
然後用物件;
最後維護物件的關係。
5、建立物件就是:就是屬性和方法的封裝。
1、成員變數和區域性變數的作用範圍:
成員變數作用的範圍:作用於整個類中
區域性變數的作用範圍:作用於函式中或者某個語句中
2、成員變數和區域性變數在記憶體中的位置:
成員變數:在堆記憶體中(因為物件的存在,才在記憶體中存在)
區域性變數:在棧記憶體中。
3、成員變數:預設有初始化值(因為在堆記憶體中)
區域性變數:預設沒有初始化值(因為在棧記憶體中)
4、當成員變數和區域性變數重名的時候,小的有效,(強龍不壓地頭蛇)
1、匿名物件的使用方法一:
當物件的方法只被呼叫一次的時候,可以用匿名物件來完成,這樣寫比較簡單。
但是如果對乙個物件進行多個成員的呼叫的時候,必須給這個物件起名字。
3、匿名物件使用方法二:可以將匿名物件作為實際的引數進行傳遞。
示例:class car
string color="red";
int num=4;
public void run()
system.out.println(color+","+num);
class demo
改造車public static void change(car c)
c.num=3;
c.color="green";
c.run();
public static void main(string args)
change(new car());// 將匿名物件作為實際的引數進行傳遞
1、封裝:對物件的屬性和實現的細節進行封裝,僅僅對外提供公共訪問的方式。
2、好處:
l 將變化隔離
l 便於使用
l 提高復用性
l 提高安全性
3、 封裝的原則:
將不需要對外提供的內容隱藏起來。
把屬性都隱藏起來,提供公共的方法對其訪問。
1、private(私有)關鍵字:
l 是乙個許可權修飾符
l 用於修飾成員(成員變數和成員方法)
l 被私有化的成員只在本類中有效
2、常用:
將成員變數進行私有化,對外提供set、get方法進行訪問。
從而提高資料訪問的安全性。
3、注意:私有只是封裝的一種表現形式。
1、建構函式的特點:
l 函式名和類名相同
l 不用定義返回值型別
l 不可以寫return語句
2、作用:給物件進行初始化。物件一建立就會呼叫與之對應的建構函式。
3、注意:
l 有預設的建構函式,但是如果自己定義了建構函式,那麼就沒有預設的就沒有了
l 多個建構函式是以過載的形式存在的(名同引數列表不同)
4、建構函式和普通的函式的不同:
l 在寫法上不同
l 在執行上不同:
² 建構函式,物件一建立,就執行
² 普通的函式,只有被呼叫的時候才會被執行
² 建構函式只能被執行一次
² 普通的函式能夠被執行多次。
1、構造**塊:
定義:單獨的乙個塊{}
作用:給物件進行初始化
物件一建立就執行,且優先於建構函式。
2、構造**塊和建構函式的區別:
構造**塊是給所有的物件進行統一的初始化
建構函式是給對應的物件進行初始化。
3、建構函式中存放的內容:所有的物件初始化時候的共性內容。
4、示例:
class person
private string name;
private int age;
建構函式,無名無年齡
person()
system.out.println("name="+name+",,age="+age);
建構函式,有名無年齡
person(string name)
this.name=name;
//重名的時候得用this標識,因為如果不標識,這個name就都是這個函式//中的name。(強龍不壓)
system.out.println("name="+name+",,age="+age);
建構函式,有名有年齡
person(string name,int age)
this.name=name;
this.age=age;
system.out.println("name="+name+",,age="+age);
構造**塊
system.out.println("cry");
class demo2
public static void main(string args)
person p =new person();
person p1=new person("lili");
person p2=newperson("lili",30);
1、this : 代表它所在的函式所屬的物件的引用(物件和this中的位址值相同,指向了同乙個物件)
通俗的講就是哪個物件在呼叫this所在的函式,this就代表哪個物件。
2、注意:類之間的呼叫其實是通過物件來實現的,但是一般情況下不寫物件, 但是當重名的時候,則需要標識出來。
3、用處:一般用於區分區域性變數和成員變數間同名的情況。
4、 當我們看到this的時候,先想它代表哪個物件。
5、 this的應用:當定義類中的功能的時候,該功能內部要用到呼叫該函式的對 象時,這時用this來表示這個物件。
但凡本類功能內部使用了本類的物件,都用this表示。
6、示例:
class person
private string name;
private int age;
person(int age)
this.age=age;
public void setname(string name)
this.name=name;
public string getname()
return name;
public void setage(int age)
this.age=age;
public int geage()
return age;
public boolean compare(person p)
return this.age==p.age; //本類的函式呼叫了本類的物件
class thisdemo
public static void main(string args)
person p1=new person(23);
person p2=new person(40);
system.out.println(p1.compare(p2));
1、this() :用於建構函式間進行呼叫
2、this語句只能定義在建構函式的第一行。因為初始化優先。
3、一般函式是不能夠呼叫建構函式的。
4、示例:
class person
private string name;
private int age;
person()
system.out.println("hehe");
person(string name)
this(); //用this關鍵字實現建構函式之間的呼叫
this.name=name;
class thisdemo2
public static void main(string args)
person p =new person("lili");
java SE複習筆記5
複習之餘,給大家加上點 論語 哈!好久沒有學習過語文啦,還真有點懷念這個課呢!學而時習之,不亦說乎?經常複習學過的知識,不也很快樂嗎?你快樂嗎?變數 veriable 定義格式 資料型別 變數名 初始化值 需要先定義後使用 有作用域,超出作用域將不能被使用 自己有初始化值 基本資料型別 8 數值型 ...
5天學python python 學習第5天
字典增刪改查 dic1 dic1 asdas dfdsf 新增 預設最後乙個 print dic1 dic1 age 20 如果有建 則值覆蓋 print dic1 dic1.setdefault weight 有建值對 不做任何改變 沒有新增建值對 dic1.setdefault weight 1...
python第5天學習
函式以def開頭,後面接函式名和圓括號 函式執行的 以冒號為起始,並且縮排。return結束函式選擇返回乙個值給呼叫方不用表示式return相當於返回none。可以沒有返回值。def function d ddd return c 函式的呼叫 temp function s wemp是s print...