亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目次
4)過(guò)濾有效數(shù)據(jù)" >4)過(guò)濾有效數(shù)據(jù)
5)總結(jié)" >5)總結(jié)
1)程序中的繼承" >1)程序中的繼承
2)父類的選擇" >2)父類的選擇
3)繼承" >3)繼承
4)繼承的特點(diǎn)" >4)繼承的特點(diǎn)
5)不可繼承" >5)不可繼承
1)方法的重寫(xiě)/覆蓋" >1)方法的重寫(xiě)/覆蓋
2)方法重寫(xiě)與方法重載的區(qū)別" >2)方法重寫(xiě)與方法重載的區(qū)別
1)super關(guān)鍵字" >1)super關(guān)鍵字
2)super調(diào)用父類無(wú)參構(gòu)造" >2)super調(diào)用父類無(wú)參構(gòu)造
3)super調(diào)用父類有參構(gòu)造" >3)super調(diào)用父類有參構(gòu)造
4)this與super" >4)this與super
1)多態(tài)的應(yīng)用" >1)多態(tài)的應(yīng)用
ホームページ Java &#&ベース Javaの3つの大きな特徴は何ですか

Javaの3つの大きな特徴は何ですか

Jan 06, 2023 pm 02:30 PM
java

java的三大特性是:1、封裝,就是將類的某些信息隱藏在類內(nèi)部,不允許外部程序直接訪問(wèn),而是通過(guò)該類提供的方法來(lái)實(shí)現(xiàn)對(duì)隱藏信息的操作和訪問(wèn)。2、繼承,就是子類擁有父類的所有屬性和方法,從而實(shí)現(xiàn)了實(shí)現(xiàn)代碼的復(fù)用。3、多態(tài),就是父類引用指向子類對(duì)象,從而產(chǎn)生多種形態(tài)。

Javaの3つの大きな特徴は何ですか

本教程操作環(huán)境:windows7系統(tǒng)、java8版、DELL G3電腦。

Java的三大特性

面向?qū)ο笕筇匦裕悍庋b、繼承、多態(tài)。

封裝:

  • 將類的某些信息隱藏在類內(nèi)部,不允許外部程序直接訪問(wèn),而是通過(guò)該類提供的方法來(lái)實(shí)現(xiàn)對(duì)隱藏信息的操作和訪問(wèn)。

繼承:

  • 子類擁有父類的所有屬性和方法(除了private修飾的屬性不能擁有),從而實(shí)現(xiàn)了實(shí)現(xiàn)代碼的復(fù)用;

多態(tài):

  • 使用父類引用接受,不同的子類的對(duì)象實(shí)例,父類引用調(diào)用相同的方法,根據(jù)子類不同的實(shí)例,產(chǎn)生不同的結(jié)果

1、封裝

1)什么是封裝

概念:盡可能隱藏對(duì)象的內(nèi)部實(shí)現(xiàn)細(xì)節(jié),控制對(duì)象的修改及訪問(wèn)的權(quán)限。

訪問(wèn)修飾符:private (可將屬性修飾為私有,僅本類可見(jiàn))

2)公共訪問(wèn)方法

以訪問(wèn)方法的形式,進(jìn)而完成賦值與取值操作。

問(wèn)題:依舊沒(méi)有解決到非法數(shù)據(jù)錄入!

  • 提供公共訪問(wèn)方法,以保證數(shù)據(jù)的正常錄入。
  • 命名規(guī)范:
  • 賦值:setXXX() //使用方法參數(shù)實(shí)現(xiàn)賦值
  • 取值:getXXX() //使用方法返回值實(shí)現(xiàn)取值

3)示例

public static void main(String[] args) {
		int a;
		Num num = new Num();
//		傳入值100
		num.setNum(100);
		System.out.println(num.getNum());
	}
private int a;

//	在調(diào)用get方法時(shí),返回本類a的值
	public int getNum() {
		return a;
	}

//	接受傳入的值100,并賦值給本類的a
	public void setNum(int num) {
		this.a = num;
	}

4)過(guò)濾有效數(shù)據(jù)

在公共的訪問(wèn)方法內(nèi)部,添加邏輯判斷,進(jìn)而過(guò)濾掉非法數(shù)據(jù),以保證數(shù)據(jù)安全。

5)總結(jié)

get/set方法是外界訪問(wèn)對(duì)象私有屬性的唯一通道,方法內(nèi)部可對(duì)數(shù)據(jù)進(jìn)行檢測(cè)和過(guò)濾。

2、繼承

1)程序中的繼承

  • 程序中的繼承,是類與類之間特征和行為的一種贈(zèng)與或獲得。
  • 兩個(gè)類之間的繼承關(guān)系,必須滿足“is a”的關(guān)系。

2)父類的選擇

  • 現(xiàn)實(shí)生活中,很多類別之間都存在著繼承關(guān)系,都滿足“is a”的關(guān)系。

  • 狗是一種動(dòng)物、狗是一種生物、狗是一種物質(zhì)。

  • 多個(gè)類別都可作為“狗”的父類,需要從中選擇出最適合的父類。

  • 功能越精細(xì),重合點(diǎn)越多,越接近直接父類。

  • 功能越粗略,重合點(diǎn)越少,越接近Object類。(萬(wàn)物皆對(duì)象的概念)

3)繼承

語(yǔ)法:class 子類 extends 父類{ } //定義子類時(shí),顯示繼承父類

public class 子類名 extends 父類名{
	
	//代碼塊
	}

應(yīng)用:產(chǎn)生繼承關(guān)系之后,子類可以使用父類中的屬性和方法,也可定義子類獨(dú)有的屬性和方法。

好處:既提高代碼的復(fù)用性,又提高代碼的可擴(kuò)展性。

4)繼承的特點(diǎn)

Java為單繼承,一個(gè)類只能有一個(gè)直接父類,但可以多級(jí)繼承,屬性和方法逐級(jí)疊加。

5)不可繼承

構(gòu)造方法:類中的構(gòu)造方法,只負(fù)責(zé)創(chuàng)建本類對(duì)象,不可繼承。

private修飾的屬性和方法:訪問(wèn)修飾符的一種,僅本類可見(jiàn)。

父子類不在同一個(gè)package中時(shí),default修飾的屬性和方法:訪問(wèn)修飾符的一種,僅同包可見(jiàn)。

3、方法重寫(xiě)

1)方法的重寫(xiě)/覆蓋

方法重寫(xiě)原則:

  • 方法名稱、參數(shù)列表與父類相同。
  • 返回值類型必須與父類相同或其子類
  • 訪問(wèn)修飾符可與父類相同或是比父類更寬泛。

方法重寫(xiě)的執(zhí)行:

  • 子類重寫(xiě)父類方法后,調(diào)用時(shí)優(yōu)先執(zhí)行子類重寫(xiě)后的方法。

  • 方法重寫(xiě)的特性:

    子類重寫(xiě)父類方法時(shí)子類方法會(huì)覆蓋父類方法。

    子類重寫(xiě)父類方法,訪問(wèn)級(jí)別不能嚴(yán)于父類方法。

    子類重寫(xiě)方法名和類型與父類一樣。

    父類的構(gòu)造方法無(wú)法重寫(xiě),只能被覆蓋。

示例:

//父類
public class Animal {
//	父類中吃的方法會(huì)輸出“玩玩玩”
	public void play() {
		System.out.println("玩玩玩");
	}

//	父類中睡的方法會(huì)輸出“睡睡睡”
	public void sleep() {
		System.out.println("睡睡睡");
	}

}
/**
 * 狗類繼承 父類
 */
public class Dog extends Animal {

//	進(jìn)行方法重寫(xiě),將方法重寫(xiě)輸出為“狗玩飛碟”
	public void play() {
		System.out.println("狗玩飛碟");
	}
}
public class Test {

	public static void main(String[] args) {
		// 實(shí)例化寵物對(duì)象
		Dog d = new Dog();
		d.play();
		d.sleep();
	}

}

運(yùn)行輸出:

Javaの3つの大きな特徴は何ですか

2)方法重寫(xiě)與方法重載的區(qū)別

相同點(diǎn):方法名相同
不同點(diǎn):
重載:參數(shù)列表不同,返回值與訪問(wèn)修飾符無(wú)關(guān)
重寫(xiě):參數(shù)列表相同,返回值相同或其子類,訪問(wèn)修飾符不能比父類更嚴(yán)

4、super關(guān)鍵字

1)super關(guān)鍵字

super關(guān)鍵字可在子類中訪問(wèn)父類的方法。

  • 使用”super.”的形式訪問(wèn)父類的方法,進(jìn)而完成在子類中的復(fù)用;
  • 再疊加額外的功能代碼,組成新的功能。

2)super調(diào)用父類無(wú)參構(gòu)造

super():表示調(diào)用父類無(wú)參構(gòu)造方法。如果沒(méi)有顯示書(shū)寫(xiě),隱式存在于子類構(gòu)造方法的首行。

3)super調(diào)用父類有參構(gòu)造

super():表示調(diào)用父類無(wú)參構(gòu)造方法。

super(實(shí)參):表示調(diào)用父類有參構(gòu)造方法。
參構(gòu)造被執(zhí)行

4)this與super

this或super使用在構(gòu)造方法中時(shí),都要求在首行。
當(dāng)子類構(gòu)造中使用了this()或this(實(shí)參),即不可再同時(shí)書(shū)寫(xiě)super()或super(實(shí)參),會(huì)由this()指向構(gòu)造方法完成super()調(diào)用。

class A{
		public A(){
		System.out.println(( "A-無(wú)參構(gòu)造"));
		}
		public A(int value) {
		System.out.println(("A-有參構(gòu)造")); 
		}
		}
		class B extends A{
		public B(){
		super();
		System.out.println( "B-無(wú)參構(gòu)造");
		}
		public B(int value) {
//		super();這兩貨不能跟同時(shí)存在
		this();
		System.out.println(("B-有參構(gòu)造"));
		}
		}

5、多態(tài)

概念:父類引用指向子類對(duì)象,從而產(chǎn)生多種形態(tài)。

二者具有直接或間接的繼承關(guān)系時(shí),父類引用可指向子類對(duì)象,即形成多態(tài)。

父類引用僅可調(diào)用父類所聲明的屬性和方法,不可調(diào)用子類獨(dú)有的屬性和方法。

1)多態(tài)的應(yīng)用

方法重載可以解決接收不同對(duì)象參數(shù)的問(wèn)題,但其缺點(diǎn)也比較明顯。

  • 首先,隨著子類的增加,Master類需要繼續(xù)提供大量的方法重載,多次修改并重新編譯源文件。
  • 其次,每一個(gè)feed方法與某一種具體類型形成了密不可分的關(guān)系,耦合太高。

場(chǎng)景一:使用父類作為方法形參實(shí)現(xiàn)多態(tài),使方法參數(shù)的類型更為寬泛。

public class Animal {
//		父類中吃的方法會(huì)輸出“玩玩玩”
	public void play() {
		System.out.println("玩玩玩");
	}

//	父類中睡的方法會(huì)輸出“睡睡睡”
	public void sleep() {
		System.out.println("睡睡睡");
	}

}
/**
 * 狗類繼承 父類
 * 
 * 
 *
 */
public class Dog extends Animal {

//	狗類特有的方法“狗吃狗糧”
	public void eat() {
		System.out.println("狗吃狗糧");
	}

}
public class Test {

	public static void main(String[] args) {
		// 實(shí)例化寵物對(duì)象
		Animal d = new Dog();
		d.play();
		d.sleep();
//		The method eat() is undefined for the type Animal
//		對(duì)于類型動(dòng)物,eat()方法未定義
//		當(dāng)我們?nèi)フ{(diào)用子類對(duì)象的特有方法時(shí),就會(huì)爆出上面的錯(cuò)誤提示
//		如果想要實(shí)現(xiàn)子類特有方法,就必須要強(qiáng)轉(zhuǎn)
//		d.eat();
		((Dog) d).eat();
	}

}

運(yùn)行輸出:

Javaの3つの大きな特徴は何ですか

場(chǎng)景二:使用父類作為方法返回值實(shí)現(xiàn)多態(tài),使方法可以返回不同子類對(duì)象。

示例:

//動(dòng)物類  父類
public class Animal {
	public void food() {
		System.out.println("...");
	}
}
//用extends關(guān)鍵字,繼承父類屬性
public class Dog extends Animal {

	public void food() {
		System.out.println("狗吃狗糧");
	}

	public void runing() {
		System.out.println("一直跑跑跳跳");
	}
}
//用extends關(guān)鍵字,繼承父類屬性
public class Fish extends Animal {
	public void food() {
		System.out.println("大魚(yú)吃小魚(yú),小魚(yú)吃蝦米");
	}

	public void swimming() {
		System.out.println("小魚(yú)兒,一直游");
	}
}
public class Master {
//	傳入你的動(dòng)物,并去給它喂食
	public void food(Animal animal) {
		System.out.println("喂食");
		animal.food();
	}
}
import java.util.Scanner;

public class Shopping {
//	你沒(méi)有動(dòng)物,所以animal為空
	Animal animal = null;

//	判斷你要購(gòu)買的寵物,并返回寵物類(狗、魚(yú))
	public Animal shopping(int a) {
		if (a == 1) {
			animal = new Dog();
		} else if (a == 2) {
			animal = new Fish();
		}
//		this.animal=animal;
		return animal;
	}

	public void showMenu() {
		Scanner input = new Scanner(System.in);
		System.out.println("歡迎來(lái)到一只寵物寵物店");
		System.out.println("請(qǐng)選擇喜歡的寵物:");
		System.out.println("1.狗 2.魚(yú) ");
		int a = input.nextInt();
		Animal animal = shopping(a);
		Master mm = new Master();
		mm.food(animal);
//		用instanceof判斷你買的是狗還是魚(yú)。
//		狗就執(zhí)行狗的屬性和方法,魚(yú)就執(zhí)行魚(yú)的屬性和方法
		if (animal instanceof Dog) {
			Dog d = (Dog) animal;
			d.runing();
		} else if (animal instanceof Fish) {
			Fish f = (Fish) animal;
			f.swimming();
		}

	}
}
//測(cè)試類
public class text {
	public static void main(String[] args) {
		Shopping shop = new Shopping();
		shop.showMenu();
	}
}

運(yùn)行結(jié)果:

Javaの3つの大きな特徴は何ですか

2)多態(tài)的靜態(tài)和動(dòng)態(tài)實(shí)現(xiàn)

動(dòng)態(tài)綁定:即為重寫(xiě)/覆蓋,方法的重寫(xiě)

動(dòng)態(tài)綁定也叫后期綁定,在運(yùn)行時(shí),虛擬機(jī)根據(jù)具體對(duì)象實(shí)例的類型進(jìn)行綁定,或者說(shuō)是只有對(duì)象在虛擬機(jī)中運(yùn)行創(chuàng)建了之后,才能確定方法屬于哪一個(gè)對(duì)象實(shí)例的

  • 根據(jù)實(shí)際對(duì)象是什么,就去找相應(yīng)對(duì)象方法去執(zhí)行。
  • 動(dòng)態(tài)綁定是在運(yùn)行時(shí)才會(huì)執(zhí)行(例如重寫(xiě)的方法)。

靜態(tài)綁定:即為重載,方法的重載

一個(gè)方法的參數(shù)在編譯階段常被靜態(tài)地綁定,它是根據(jù)參數(shù)列表的不同來(lái)區(qū)分不同的函數(shù),通過(guò)編輯之后會(huì)變成兩個(gè)不同的函數(shù)

  • 根據(jù)類型找相應(yīng)的屬性或者靜態(tài)變量。
  • 靜態(tài)綁定是在編譯時(shí)執(zhí)行(如成員變量,靜態(tài)方法)。

更多編程相關(guān)知識(shí),請(qǐng)?jiān)L問(wèn):編程教學(xué)??!

以上がJavaの3つの大きな特徴は何ですかの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見(jiàn)つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫(huà)像を無(wú)料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫(xiě)真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫(xiě)真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開(kāi)発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開(kāi)発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

vscode settings.jsonの場(chǎng)所 vscode settings.jsonの場(chǎng)所 Aug 01, 2025 am 06:12 AM

settings.jsonファイルは、ユーザーレベルまたはワークスペースレベルのパスにあり、VSCODE設(shè)定のカスタマイズに使用されます。 1。ユーザーレベルのパス:WindowsはC:\ users \\ appdata \ roaming \ code \ user \ settings.json、macos is/users //settings.json、linux is /home/.config/code/user/settings.json; 2。Workspace-Level Path:.vscode/settings Project Root Directoryの設(shè)定

JDBCを使用してJavaのトランザクションを処理する方法は? JDBCを使用してJavaのトランザクションを処理する方法は? Aug 02, 2025 pm 12:29 PM

JDBCトランザクションを正しく処理するには、最初に自動(dòng)コミットモードをオフにし、次に複數(shù)の操作を?qū)g行し、結(jié)果に応じて最終的にコミットまたはロールバックする必要があります。 1。CONN.SETAUTOCOMMIT(FALSE)を呼び出して、トランザクションを開(kāi)始します。 2。挿入や更新など、複數(shù)のSQL操作を?qū)g行します。 3。すべての操作が成功した場(chǎng)合はconn.commit()を呼び出し、データの一貫性を確保するために例外が発生した場(chǎng)合はconn.rollback()を呼び出します。同時(shí)に、リソースを使用してリソースを管理し、例外を適切に処理し、接続を密接に接続するために、接続の漏れを避けるために使用する必要があります。さらに、接続プールを使用してセーブポイントを設(shè)定して部分的なロールバックを達(dá)成し、パフォーマンスを改善するためにトランザクションを可能な限り短く保つことをお?jiǎng)幛幛筏蓼埂?/p>

SpringとGuiceを使用したJavaでの依存関係のマスタリング SpringとGuiceを使用したJavaでの依存関係のマスタリング Aug 01, 2025 am 05:53 AM

依存関係の指示(di)isadesignpatternwhere objectsreceivedenciesiesedternally、setter、orfieldinoffiction.2.springframeworkusessaNnotationslike@component、@service、@autowiredwithjava Basedconfi

Java仮想マシン(JVM)內(nèi)部の理解 Java仮想マシン(JVM)內(nèi)部の理解 Aug 01, 2025 am 06:31 AM

thejvmenablesjavaの「writeonce、runany where "capabilitybyexcuting byteCodeThethermainComponents:1。theClassLoaderSubSystemloads、links、andinitializes.classfilesusingbootStrap、拡張、およびアプリケーションクラスローロー、

Javaでカレンダーを操作する方法は? Javaでカレンダーを操作する方法は? Aug 02, 2025 am 02:38 AM

Java.Timeパッケージのクラスを使用して、古い日付とカレンダーのクラスを置き換えます。 2。LocalDate、LocalDateTime、LocalTimeを通じて現(xiàn)在の日付と時(shí)刻を取得します。 3。of()メソッドを使用して特定の日付と時(shí)刻を作成します。 4.プラス/マイナスメソッドを使用して、時(shí)間を不正に増加させて短縮します。 5. ZonedDateTimeとZoneIDを使用して、タイムゾーンを処理します。 6。DateTimeFormatterを介したフォーマットおよび解析の文字列。 7.インスタントを使用して、必要に応じて古い日付型と互換性があります?,F(xiàn)代のJavaでの日付処理は、java.timeapiを使用することを優(yōu)先する必要があります。

Google Chromeはローカルファイルを開(kāi)くことができません Google Chromeはローカルファイルを開(kāi)くことができません Aug 01, 2025 am 05:24 AM

chromecanopenlocalfileslikehtmlandpdfsbyusing "openfile" ordraggingthemintotheblowser;

ネットワークポートとファイアウォールの理解 ネットワークポートとファイアウォールの理解 Aug 01, 2025 am 06:40 AM

ネットワークポートアンドファイアワルクトグテルトエナブルコマニケーションwhiledensuringsecurity.1.networksarevirtualendpointsnumbered0–655 35、withwell-knownportslike80(http)、443(https)、22(ssh)、および25(smtp)識(shí)別pecificservices.2.portsoperateovertcp(信頼できる、c

Javaフレームワークの比較:Spring Boot vs Quarkus vs Micronaut Javaフレームワークの比較:Spring Boot vs Quarkus vs Micronaut Aug 04, 2025 pm 12:48 PM

Pre-formanceTartuptimeMemoryusage、quarkusandmicronautleadduetocopile-timeprocessingingandgraalvsupport、withquarkusoftentylightbetterine serverlessシナリオ。

See all articles