Day11-JAVA

java語言的特點(diǎn):

*? 1、面向?qū)ο?/p>

*?

*? 面向?qū)ο蟮奶攸c(diǎn):? 封裝、繼承、多態(tài)

*?

*? 1、類與對象的關(guān)系

*?

*? 類:物以類聚 人以群分

*?

*? 類:將具有相同特征和行為的事物,進(jìn)行抽象化形成一類

*? 類的特點(diǎn):

*? 1、相同特征和行為

*? 2、抽象化的

*?

*? 對象: 就是類的一個(gè)具體的實(shí)例

*?

*? 類與對象的關(guān)系:

*? 1、類是抽象化的,對象是類中具體的實(shí)例,每個(gè)實(shí)例都有該類的特征和行為

*? 2、對象是類的具體實(shí)例,一個(gè)類可以有多個(gè)實(shí)例,一個(gè)對象就屬于一個(gè)類

*?

*?

*? java中類:

*? 1、類的語法:

*? public? class? 類名{

*? 代碼

*? }

*?

*? 類的特征:成員變量(屬性)

*? 類的行為:成員方法(非靜態(tài)方法)

*? 成員變量、成員方法? 是屬于對象的屬性和行為

*?

*?

*?

*? 類是一張圖紙,規(guī)定了該類所有的特征和行為

*?

*? 對象根據(jù)類這個(gè)圖紙來實(shí)例化的,那么只要是該類的對象,都具有該類的特征和行為.

類的特征:? 成員變量

*? 類的行為:? 成員方法

*?

*? 對象怎么創(chuàng)建:

*? 對象都是用該類的構(gòu)造方法創(chuàng)建的

*?

*? 什么是構(gòu)造方法:

*? 構(gòu)造方法就是一個(gè)特殊的方法,沒有返回值也不需要寫void

*? 構(gòu)造方法名必須和類名保持一致

*?

*? 語法:

*? public 類名( [參數(shù)列表] ){

*? 代碼;

*? }

*?

*? 構(gòu)造方法的調(diào)用方式:

*? 只能通過new 關(guān)鍵字調(diào)用

*? new 構(gòu)造方法名();

*?

*? 構(gòu)造方法的作用:

*? 1、創(chuàng)建本類的對象

*? 2、初始化成員變量

*/

//構(gòu)造方法----? 無參構(gòu)造

public ClassAndObject02(){

}

//主方法

public static void main(String[] args) {

//創(chuàng)建本類的對象 -- 通過new關(guān)鍵字 調(diào)用構(gòu)造方法

// 對象本身是引用數(shù)據(jù)類型,需要賦值給該類的一個(gè)變量

ClassAndObject02 object = new ClassAndObject02();

System.out.println(object);

構(gòu)造方法:

* 作用

* 1、創(chuàng)建本類的對象

* 2、初始化成員變量

*

* 成員變量(屬性):

* ? ? 位置:在類中,方法的外面

* ? ? ? ? ? ? ? ? 數(shù)據(jù)類型? 變量名? [ = 值 ];

*? ? 訪問:

*? ? 對象.屬性

*? ?

*? ? 作用范圍:整個(gè)類中

*? ?

*? ? 內(nèi)存位置:

*? ? 內(nèi)存: 棧 、堆、常量池、本地方法區(qū)

*? ? 成員變量存放位置:堆

*?

*? 構(gòu)造方法的特點(diǎn):

*? 1、構(gòu)造方法名必須和類名保持一致

*? 2、構(gòu)造方法沒有返回值,也不需要寫void

*? 3、一個(gè)類中如果沒有顯示的表明無參構(gòu)造,虛擬機(jī)會(huì)默認(rèn)提供一個(gè)無參構(gòu)造方法

*? 4、一個(gè)類中定義了有參數(shù)的構(gòu)造方法,虛擬機(jī)不再提供無參構(gòu)造,需要手動(dòng)添加

*/

//成員變量? -- 對象的屬性

String name ;

int age ;

//無參構(gòu)造? alt + shift + s? 選Generate最后一個(gè)

public Construct01() {

}

//有參構(gòu)造

public Construct01(String a , int b ){

name = a;

age = b ;

}

//主方法

public static void main(String[] args) {

//調(diào)用無參構(gòu)造方法

//自己生成相對應(yīng)類型的變量

//alt + shift + L 自己起變量名

Construct01 c = new Construct01();

System.out.println(c.name); // null

System.out.println(c.age);? // 0

//創(chuàng)建對象

Construct01 con = new Construct01("張三",20);

System.out.println(con.name); // 張三

System.out.println(con.age);? // 20

}

}

值傳遞:

* 1、參數(shù)是基本數(shù)據(jù)類型

* 2、參數(shù)是引用數(shù)據(jù)類型

*/

/**

* 自己定義的方法

* @param i

*/

public static void m1(int i){

i++;

System.out.println("m1--------->" + i); // 11

}

//主方法

public static void main(String[] args) {

int a = 10 ;

ValuePass01.m1(a);

System.out.println("main------->" + a); //11? 10

}

}

* 值傳遞:

* 1、參數(shù)是基本數(shù)據(jù)類型

* 2、參數(shù)是引用數(shù)據(jù)類型

*/

//屬性 -- 成員變量

String name? ;

int age ;

public? static void? m2( ValuePass02 v ){

v.name = "葫蘆娃" ;

v.age = 10 ;

//System.out.println("m2 姓名:" + v.name); //葫蘆娃

//System.out.println("m2 年齡:" + v.age);? //10

}

public static void main(String[] args) {

ValuePass02 val = new ValuePass02();

System.out.println("main 姓名:" + val.name); //

System.out.println("main 年齡:" + val.age);? //

//調(diào)用m2方法

ValuePass02.m2(val);

System.out.println("main 姓名:" + val.name); //葫蘆娃

System.out.println("main 年齡:" + val.age);? //10

}

/**

* 作業(yè):

* 聲明一個(gè)狗類 Dog類 :

* 屬性:

* color: 顏色

* size : 大小

* type : 品種

*

* 在main方法中創(chuàng)建兩個(gè)Dog類的對象

* 對象1 訪問屬性,輸出的是默認(rèn)值

*

* 對象2訪問屬性:

* color : 灰色

* size? : 大型犬

* type? : 阿拉斯加雪橇犬

*

* 在自定義的方法中,輸出的對象1的屬性是:

* color : 白色

* size? : 中型犬

* type? : 西西伯利亞雪橇犬

*/

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容