日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

面向对象(上)之三

發(fā)布時間:2025/3/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面向对象(上)之三 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1 封裝性

1.1 封裝性的設(shè)計思想

  • 隱藏對象內(nèi)部的復(fù)雜性,只對外公開簡單的接口。便于外界調(diào)用,從而提高系統(tǒng)的可擴展性、可維護性。
  • 換言之,把該隱藏的隱藏起來,該暴露的暴露出來。

1.2 封裝性的引入

  • 使用者對類內(nèi)部定義的屬性直接操作會導(dǎo)致數(shù)據(jù)的錯誤、混亂或安全性問題。

?

  • 示例:
package day08;public class Animal {public int legs;public void eat() {System.out.println("動物吃飯");}public void move() {System.out.println("動物移動");} } View Code package day08;public class AnimalTest {public static void main(String[] args) {Animal animal = new Animal();animal.legs = 4;animal.eat();animal.move();System.out.println("----------------------");animal = new Animal();animal.legs = -5;animal.eat();animal.move();} } View Code

1.3 信息的封裝和隱藏

  • java通過將數(shù)據(jù)聲明為私有的(private),再提供公共的(public)的方法實現(xiàn)對該屬性的操作,以實現(xiàn)下面的目的:
  • ①隱藏一個類中不需要對外提供的實現(xiàn)細節(jié)。
  • ②使用者只能通過事先定制好的方法來訪問數(shù)據(jù),可以方便的加入控制邏輯,限制對屬性的不合理操作。
  • ③便于修改,增強代碼的可維護性。

?

  • 示例:
package day08;public class Animal {private int legs;public int getLegs() {return legs;}public void setLegs(int legs) {if (0 != legs && 2 != legs && 4 != legs) {System.out.println("動物的腿的數(shù)目不對");return;}this.legs = legs;}public void eat() {System.out.println("動物吃飯");}public void move() {System.out.println("動物移動");} } View Code

1.3 四種訪問權(quán)限修飾符

  • java權(quán)限修飾符public、protected、缺省、private置于類的成員定義前,用來限定對象對該類成員的訪問權(quán)限。

  • 對于class的權(quán)限修飾只可以用public和缺省。
  • ①public類可以在任何地方被訪問。
  • ②缺省類只可以被同一個包內(nèi)部的類訪問。

?

  • 示例:?
package day08;public class Person {private Integer age;public Integer getAge() {return age;}public void setAge(Integer age) {if (age >= 0 && age <= 130) {this.age = age;}} } View Code

?

2 構(gòu)造器(構(gòu)造方法)

2.1 構(gòu)造器的特征

  • 它具有和類相同的名稱。
  • 它不聲明返回值類型。
  • 不能被static、final、synchronized、abstract、native修飾,不能有return語句返回值。

2.2 構(gòu)造器的作用

  • 創(chuàng)建對象。
  • 給對象進行初始化。

2.3 構(gòu)造器的語法格式

  • 格式:
訪問修飾符 類名(參數(shù)列表){//初始化語句; }

2.4 構(gòu)造器的分類

  • 根據(jù)參數(shù)的不同,構(gòu)造器可以分為如下的兩類:
  • ①隱式無參構(gòu)造器(系統(tǒng)默認提供)。
  • ②顯示定義一個或多個構(gòu)造器(無參、有參)。

2.5 構(gòu)造器的注意事項

  • java語言中,每個類都至少有一個構(gòu)造器。
  • 默認構(gòu)造器的修飾符和所屬類的修飾符一致。
  • 一旦顯示定義了構(gòu)造器,則系統(tǒng)不再提供默認構(gòu)造器。
  • 一個類可以創(chuàng)建多個重載的構(gòu)造器。
  • 父類的構(gòu)造器不能被子類繼承。

2.6 構(gòu)造器的作用

  • ①創(chuàng)建對象。
  • ②給對象進行初始化。

2.7 應(yīng)用的示例

  • 示例:
package day08;public class Person {private String name;private Integer age;/*** 無參構(gòu)造器*/public Person() {}/*** 有參構(gòu)造器*/public Person(String name) {this.name = name;}/*** 有參構(gòu)造器*/public Person(Integer age) {this.age = age;}/*** 有參構(gòu)造器*/public Person(String name, Integer age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;} } View Code

?

3 JavaBean

3.1 JavaBean的概念

  • JavaBean是一種java語言寫成的可重用的組件。

?

  • 所謂的JavaBean,是指符合如下標(biāo)準(zhǔn)的java類:
  • ①類的公共的。
  • ②有一個無參數(shù)的公共的構(gòu)造方法。
  • ③有屬性,并且有set和get方法。

?

  • 用戶可以使用JavaBean將功能、處理、值、數(shù)據(jù)庫訪問和其他任何可以用Java代碼創(chuàng)造的對象進行打包,并且其他的開發(fā)者可以通過內(nèi)部的JSP頁面、Servlet、其他JavaBean、applet程序或者應(yīng)用來使用這些對象。用戶可以認為JavaBean提供了一種隨時隨地可以復(fù)制和粘貼的功能,而不用關(guān)系任何改變。

3.3 JavaBean的應(yīng)用示例

  • 示例:
package day08;public class Person {private String name;private Integer age;public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;} } View Code

?

4 this關(guān)鍵字

4.1 this關(guān)鍵字的概念

  • 在java中,this關(guān)鍵字比較難理解,它的作用和其語義很接近。
  • ①它在方法內(nèi)部使用,即這個方法所屬對應(yīng)的引用。
  • ②它在構(gòu)造器內(nèi)部使用,表示該構(gòu)造器正在初始化的對象。

?

  • this表示當(dāng)前對象,可以調(diào)用當(dāng)前類的屬性、方法和構(gòu)造器。

4.2 this關(guān)鍵字的應(yīng)用示例

  • 示例:
package day08;public class Person {private String name;private Integer age;public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +'}';} } View Code package day08;public class PersonTest {public static void main(String[] args) {Person person = new Person();person.setName("許威威");person.setAge(27);System.out.println(person);} } View Code

?

5 package關(guān)鍵字

5.1 package關(guān)鍵字的概念

  • package語句作為java源文件的第一條語句,指明該文件中定義的類所在的包。
  • 其格式如下:
package com.xxx;
  • 包對應(yīng)于文件系統(tǒng)的目錄,package語句中,用“.”來指明包(目錄)的層次。
  • 包通常用小寫單詞標(biāo)識。通常使用所在公司域名的倒置。

5.2 package關(guān)鍵字的應(yīng)用示例

  • 示例:
package day08;public class Person {private String name;private Integer age;public Person() {}public Person(String name) {this(name, null);}public Person(Integer age) {this(null, age);}public Person(String name, Integer age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +'}';} } View Code

?

6 import關(guān)鍵字

6.1 import關(guān)鍵字的概念

  • 為使用定義在不同包中的java類,需要import語句來引入指定包層次下所需要的類或全部類(.*)。
  • import語句告訴編譯器到哪里去尋找類。

6.2 語法格式

  • 格式:
import 包名.類名;

6.3 import關(guān)鍵字的應(yīng)用示例

  • 示例:
package day07;public class Person {private String name;private Integer age;public Person() {}public Person(String name, Integer age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +'}';} } View Code package day08;import day07.Person;public class PersonTest {public static void main(String[] args) {Person person = new Person();person.setName("許威威");person.setAge(27);System.out.println(person);} } View Code

6.4 注意

  • 在源文件中使用import顯示的導(dǎo)入指定包下的類或接口。
  • 聲明在包的聲明和類的聲明之間。
  • 如果需要導(dǎo)入多個類或接口,那么就需要并列顯示多個import語句。
  • 如果導(dǎo)入的類或接口是java.lang包下的,或者是當(dāng)前包下的,則可以省略此import語句。
  • 如果在代碼中使用不同包下的同名的類,那么就需要使用類的全類名的方式指明調(diào)用的是哪個類。
  • 如果已經(jīng)導(dǎo)入java.util包下的類,如果需要導(dǎo)入util包的子包下的類,依然需要導(dǎo)入。

?

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

總結(jié)

以上是生活随笔為你收集整理的面向对象(上)之三的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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