日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

javaSE第七天

發(fā)布時(shí)間:2024/10/12 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javaSE第七天 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

第七天????36

1. 成員變量和局部變量的區(qū)別(理解)????36

(1)在類中的位置不同????36

(2)在內(nèi)存中的位置不同????36

(3)生命周期不同????36

(4)初始化值不同????37

2. 形式參數(shù)的問題?(理解)????37

3. 匿名對(duì)象(理解)????37

4. 封裝(理解)????37

5. private關(guān)鍵字(掌握)????37

6. this關(guān)鍵字(掌握)????38

7. 構(gòu)造方法(掌握)????38

(1)作用:????38

(2)格式:????38

(3)構(gòu)造方法的注意事項(xiàng)????38

(4)給成員變量賦值的方式????38

(5)標(biāo)準(zhǔn)案例????38

8. 成員方法的分類及使用????39

9. 代碼:Student s = new Student();做了哪些事情?(理解)????41

10. 面向?qū)ο蟮木毩?xí)題(掌握)????41

11. 關(guān)鍵字static 引入和應(yīng)用????41

(1). static 的特點(diǎn):(它可以修飾成員變量,還可以修飾成員方法)????41

(2). Static 關(guān)鍵字的內(nèi)存圖解????42

(3).static 的注意事項(xiàng)????42

12. 靜態(tài)變量和成員變量的區(qū)別(理解)????42

13. main 方法的格式講解????43

?

?

第七天

?

1. 成員變量和局部變量的區(qū)別(理解)
????(1)在類中的位置不同

????????成員變量:類中方法外

????????局部變量:方法定義中或者方法聲明上

????(2)在內(nèi)存中的位置不同

????????成員變量:在堆內(nèi)存中

????????局部變量:在棧內(nèi)存中

????(3)生命周期不同

????????成員變量:隨著對(duì)象的創(chuàng)建而存在,隨著對(duì)象的消失而消失

????????局部變量:隨著方法的調(diào)用而存在,隨著方法的調(diào)用完畢而消失

????(4)初始化值不同

????????成員變量:有默認(rèn)值

????????局部變量:沒有默認(rèn)值,必須定義,賦值,然后才能使用

????注意事項(xiàng):

???????????? 局部變量名稱可以和成員變量名稱一樣,在方法中使用的時(shí)候,采????用的是就近原則。

2. 形式參數(shù)的問題?(理解)

????(1)形式參數(shù)是類:

如果你看到一個(gè)方法需要的參數(shù)是一個(gè)類名,就應(yīng)該知道這里實(shí)際需要的是一個(gè)具體的對(duì)象。

  • 形式參數(shù)是基本類型:

    基本類型:形式參數(shù)的改變不影響實(shí)際參數(shù)

    引用類型:形式參數(shù)的改變直接影響實(shí)際參數(shù)的值

    3. 匿名對(duì)象(理解)

    ????(1)沒有名字的對(duì)象

    ????(2)應(yīng)用場景

    ????????A:調(diào)用方法,僅僅只調(diào)用一次的時(shí)候。(注意:不適合調(diào)用多次

    ????????b:可以作為實(shí)際參數(shù)傳遞。

    ????(3)匿名調(diào)用有什么好處?

    答:有,匿名對(duì)象在調(diào)用完畢之后就是垃圾,可以被垃圾回收器回收

    4. 封裝(理解)

    ????(1)隱藏實(shí)現(xiàn)細(xì)節(jié),提供公共的訪問方式

    ????(2)好處:

    ????????A:隱藏實(shí)現(xiàn)細(xì)節(jié),提供公共的訪問方式

    ????????B:提高代碼的復(fù)用性

    ????????C:提高代碼的安全性

    ????(3)設(shè)計(jì)原則

    ????????把不想讓外界知道的實(shí)現(xiàn)細(xì)節(jié)給隱藏起來,提供公共的訪問方式

    ????(4)private是封裝的一種體現(xiàn)。

    ????????封裝:類,方法,private修飾成員變量

    ?

    5. private關(guān)鍵字(掌握)

    ????(1)私有的意義,可以修飾成員變量和成員方法

    ????(2)特點(diǎn):

    ????????被private修飾的后的成員只能在本類中被訪問

    ????(3)private的應(yīng)用:

    ????????以后再寫一個(gè)類的時(shí)候:

    ????????????把所有的成員變量給private

    ????????????提供對(duì)應(yīng)的getXxx()/setXxx()方法

    ?

    6. this關(guān)鍵字(掌握)

    ????(1)代表當(dāng)前類的引用對(duì)象

    ????????記住:哪個(gè)對(duì)象調(diào)用方法,該方法內(nèi)部的this就代表那個(gè)對(duì)象

    ????(2)this的應(yīng)用場景:

    ????????A:解決了局部變量隱藏成員變量的問題

    ????????B:其實(shí)this還有其他的應(yīng)用,明天講解。

    ?

    7. 構(gòu)造方法(掌握)

    ????(1)作用:

    用于給對(duì)象的數(shù)據(jù)進(jìn)行初始化

    ????(2)格式:

    ????????A:方法名和類名相同

    ????????B:沒有返回值類型,連void都不能有

    ????????C:沒有返回值

    ????????

    ????????思考題:構(gòu)造方法中可不可以有return語句呢?

    ????????可以。而是我們寫成這個(gè)樣子就OK了:return;

    ????????其實(shí),在任何的void類型的方法的最后你都可以寫上:return;

    ????(3)構(gòu)造方法的注意事項(xiàng)

    ????????A:如果我們沒寫構(gòu)造方法,系統(tǒng)將提供一個(gè)默認(rèn)的無參構(gòu)造方法

    ????????B:如果我們給出了構(gòu)造方法,系統(tǒng)將不再提供默認(rèn)的無參構(gòu)造方法

    ????????????如果這個(gè)時(shí)候,我們要使用無參構(gòu)造方法,就必須自己給出。

    ????????????推薦:永遠(yuǎn)手動(dòng)自己給出無參構(gòu)造方法。

    ????(4)給成員變量賦值的方式

    ????????A:setXxx()

    ????????B:帶參構(gòu)造方法

    ????(5)標(biāo)準(zhǔn)案例

    ????????

    class Student {

    ????private String name;

    ????private?int?age;

    ?

    ????public Student() {

    ????}

    ?

    ????public Student(String name, int?age) {

    ????????this.name = name;

    ????????this.age = age;

    ????}

    ?

    ????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;

    ????}

    }

    ?

    ????????測(cè)試:

    ????????

    class StudentDemo {

    ????public?static?void main(String[] args) {

    ????????// 方式1

    ????????Student s1 = new Student();

    ????????s1.setName("林青霞");

    ????????s1.setAge(27);

    ????????System.out.println(s1.getName() + "---" + s1.getAge());

    ?

    ????????// 方式2

    ????????Student s2 = new Student("劉意", 30);

    ????????System.out.println(s2.getName() + "---" + s2.getAge());

    ????}

    }

    ?

    8. 成員方法的分類及使用
  • .根據(jù)返回值分類:
  • Void類型
  • void類型
  • ?

  • .根據(jù)形式參數(shù)分類:
  • 空參方法
  • 非空參方法
  • .代碼舉例:

    ?

    class Student {

    ????public String getString() {

    ????????return?"helloworld";

    ????}

    ?

    ????public?void show() {

    ????????System.out.println("show");

    ????}

    ?

    ????public?void method(String name) {

    ????????System.out.println(name);

    ????}

    ?

    ????public String function(String s1, String s2) {

    ????????return?s1 + s2;

    ????}

    }

    ?

    class StudentDemo {

    ????public?static?void main(String[] args) {

    ????????// 創(chuàng)建對(duì)象

    ????????Student s = new Student();

    ?

    ????????// 調(diào)用無參無返回值方法

    ????????s.show();

    ?

    ????????// 調(diào)用無參有返回值方法

    ????????String result = s.getString();

    ????????System.out.println(result);

    ?

    ????????// 調(diào)用帶參無返回值的方法

    ????????s.method("林青霞");

    ?

    ????????// 調(diào)用帶參帶返回值的方法

    ????????String result2 = s.function("hello", "world");

    ????????System.out.println(result2);

    ????}

    }

    ?

    ?

    9. 代碼:Student s = new Student();做了哪些事情?(理解)

    ????(1)把Student.class文件加載到內(nèi)存

    ????(2)在棧內(nèi)存為s開辟空間

    ????(3)在堆內(nèi)存為學(xué)生對(duì)象申請(qǐng)空間

    ????(4)給學(xué)生的成員變量進(jìn)行默認(rèn)初始化null,0

    ????(5)給學(xué)生的成員變量進(jìn)行顯示初始化。林青霞,27

    ????(6)通過構(gòu)造方法給成員變量進(jìn)行初始化。劉意,30

    ????(7)對(duì)象構(gòu)造完畢后,把堆內(nèi)存的地址賦值給棧內(nèi)存的s變量

    ????????

    10. 面向?qū)ο蟮木毩?xí)題(掌握)

    ????(1)標(biāo)準(zhǔn)的手機(jī)類的定義和測(cè)試

    ????(2)Demo類有求和方法,Test類進(jìn)行測(cè)試。

    ????????A) 變量什么時(shí)候定義為成員變量?

    答:如果這個(gè)變量是用來描述這個(gè)類的信息時(shí),那么,該變量就應(yīng)該定義為成員變量。

    B) 變量到底定義在哪里比較好?

    答:變量的范圍是越小越好,因?yàn)槟芗皶r(shí)的被回收。

    ????????

    ????(3)長方形案例

    ????(4)員工案例

    ????(5)MyMath案例(自己提供加減乘除并測(cè)試)

    ?

    ?

    11. 關(guān)鍵字static 引入和應(yīng)用

    (1). static 的特點(diǎn):(它可以修飾成員變量,還可以修飾成員方法)

    A:隨著類的加載而加載

    B:優(yōu)先于對(duì)象存在

    C:被類的所有對(duì)象所共享

    ????????舉例:班級(jí)的學(xué)生應(yīng)該共用同一個(gè)班級(jí)編號(hào)

    其實(shí)這個(gè)特點(diǎn)也是在告訴我們什么時(shí)候使用靜態(tài)?

    答:如果某個(gè)成員變量是被所有對(duì)象共享的,那么它就應(yīng)該被定義為靜態(tài)的

    D:可以通過類名調(diào)用

    其實(shí)他本身也可以通過對(duì)象調(diào)用

    推薦使用類名調(diào)用

    靜態(tài)修飾的內(nèi)容一般我們稱其為:與類相關(guān)的,類成員

    (2). Static 關(guān)鍵字的內(nèi)存圖解

    (3).static 的注意事項(xiàng)

    ????A:在靜態(tài)方法中是沒有this關(guān)鍵字的

    ????????如何理解呢?

    ????????????靜態(tài)是隨著類的加載而加載,this是隨著對(duì)象的創(chuàng)建而存在。

    ????????????靜態(tài)比對(duì)象先存在。

    ????B:靜態(tài)方法只能訪問靜態(tài)的成員變量和靜態(tài)的成員方法

    ????????????a: 靜態(tài)方法:

    ????????????????a). 成員變量:只能訪問靜態(tài)變量

    ????????????????b). 成員方法:只能訪問靜態(tài)成員方法

    ????????????b: 非靜態(tài)方法:

    ????????????????a). 成員變量:可以是靜態(tài)方法,也可以是非靜態(tài)方法

    ????????????????b). 成員方法:可是是靜態(tài)的成員方法,也可以是非靜態(tài)的????????????????????????????????????成員方法。

    ????????????簡單記:

    ????????????????A)靜態(tài)只能訪問靜態(tài)。

    B) 非靜態(tài)的:既可以訪問非靜態(tài)的,也可以訪問靜態(tài)的

    ?

    ?

    12. 靜態(tài)變量和成員變量的區(qū)別(理解)
  • 所屬不同
  • 靜態(tài)變量屬于類,所有也稱為類變量
  • 成員變量屬于對(duì)象,所以也稱為實(shí)例變量(對(duì)象變量)
  • 在內(nèi)存中的位置不同
  • 靜態(tài)變量存儲(chǔ)于方法區(qū)的靜態(tài)區(qū)
  • 成員變量存儲(chǔ)于堆內(nèi)存
  • 內(nèi)存中出現(xiàn)的時(shí)間不同
  • 靜態(tài)變量隨著類的加載而加載,隨著類的消失而消失
  • 成員變量隨著對(duì)象的創(chuàng)建而存在,隨著對(duì)象的消失而消失
  • 調(diào)用不同
  • 靜態(tài)變量可以通過類名調(diào)用,也可以通過對(duì)象調(diào)用
  • 成員變量只能通過對(duì)象調(diào)用
  • 13. main 方法的格式講解

    public static void main(String[] args) {...}

    Public: 公共的,訪問權(quán)限是最大的,由于main方法是被jvm調(diào)用,所以權(quán)限要夠大

    Static:靜態(tài)的,不需要?jiǎng)?chuàng)建對(duì)象,通過類名就可以調(diào)用,方便jvm直接調(diào)用

    void :因?yàn)槲覀冊(cè)?jīng)說過,方法的返回值是返回非調(diào)用者的,而main方法是被jvm調(diào)用,所以你返回內(nèi)容給 jvm 是沒有意義的

    main :是一個(gè)常見的方法入口,我見過的語言都是以 main 作為方法入口的

    String[] args : 這是一個(gè)字符串?dāng)?shù)組,值去哪里呢?

    這個(gè)東西到底有什么用啊?怎么給值呢?

    答:這個(gè)東西早期是為了接受鍵盤錄入的數(shù)據(jù)的

    格式為: java MainDemo hello world java

    ?

    class MainDemo {

    ????public?static?void main(String[] args) {

    ????????// System.out.println(args); //[Ljava.lang.String;@175078b

    ????????// System.out.println(args.length); //0

    ????????// System.out.println(args[0]); //ArrayIndexOutOfBoundsException

    ?

    ????????// 接收數(shù)據(jù)后

    ????????System.out.println(args);

    ????????System.out.println(args.length);

    ????????// System.out.println(args[0]);

    ????????for (int?x = 0; x < args.length; x++) {

    ????????????System.out.println(args[x]);

    ????????}

    ????}

    }

    轉(zhuǎn)載于:https://www.cnblogs.com/Prozhu/p/5874468.html

    總結(jié)

    以上是生活随笔為你收集整理的javaSE第七天的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。