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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

非洲瓜哇JAVA布的特点_java语言的基本特性以及编程细节

發布時間:2025/1/21 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 非洲瓜哇JAVA布的特点_java语言的基本特性以及编程细节 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

java語言的學習是一個體系,所以如果想要對java的編程有一個很精通的一個掌握,它離不開很多基礎的知識點,比如JVM的原理、java多線程并發編程、數據結構等等。所以我這里對我學習的java的課程進行定期的總結,來記錄我學習java的一些想法和心得。也希望能通過我的這些分享,給需要的學習某方面知識的人一些幫助。

java基礎的回顧總結

java語言最明顯的幾個特點就是:封裝、繼承和多態,下面來具體聊一聊這三個特性。

封裝

封裝,它是一中信息隱藏技術。面向對象計算始于這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪問其他對象。在java中通過關鍵字private,protected和public實現封裝。所以說,封裝把對象的所有組成部分組合在一起,封裝定義程序如何引用對象的數據,封裝實際上使用方法將類的數據隱藏起來,控制用戶對類的修改和訪問數據的程度。 適當的封裝可以讓程式碼更容易理解和維護,也加強了程式碼的安全性。

繼承

繼承是從已有的類中派生出新的類,新的類能吸收已有類的數據屬性和行為,并能擴展新的能力。 新類的定義可以增加新的數據或新的功能,也可以用父類的功能,但不能選擇性地繼承父類,就是說子類會繼承父類的所有成員屬性和方法。繼承只能單一繼承,一個類只能繼承一個父類,而不能有多個繼承類,多繼承的方式只能通過接口來實現。

在我們日常編程中,合理的使用繼承特性,能夠消除代碼的復制,從而達到簡化代碼以及程序邏輯的作用。

這里我們來說一下繼承的特性。

繼承關系是傳遞的。若類C繼承類B,類B繼承類A(多層繼承),則類C既有從類B那里繼承下來的屬性與方法,也有從類A那里繼承下來的屬性與方法,還可以有自己新定義的屬性和方法。繼承來的屬性和方法盡管是隱式的,但仍是類C的屬性和方法。繼承是在一些比較一般的類的基礎上構造、建立和擴充新類的最有效的手段。

繼承簡化了人們對事物的認識和描述,能清晰體現相關類間的層次結構關系。

繼承提供了軟件復用功能。若類B繼承類A,那么建立類B時只需要再描述與基類(類A)不同的少量特征(數據成員和成員方法)即可。這種做法能減小代碼和數據的冗余度,大大增加程序的重用性。

繼承通過增強一致性來減少模塊間的接口和界面,大大增加了程序的易維護性。

下面我們來通過一段代碼來說明子類和父類的繼承關系。

package com.young.basic;

public class ExtendsDemo {

//main

public static void main(String aa[]) {

//new 一個對象B()

new B();

new C();

}

}

//建一個A類

class A {

//成員變量 其中num是實參

int num = 0;

private String name = "default name";

public A(){

System.out.println("父類無參數構造方法");

}

//成員方法,其中 i 是形參

public A(int i) {

//輸入int型文件輸出下面

System.out.println("aaaaaaaaaaaaaaaaaaa");

System.out.println("i= " + i);

//把輸入的i賦值給成員變量num

num = i;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

//B繼承A

class B extends A {

int num = 0;

//成員方法B.

public B() {

//繼承類A的方法.因為B繼承了A必然繼承了A的特性.所以輸入int值10令方法實現.

super(10);

System.out.println("bbbbbbbbbbbbbbbbbbbb");

//這里的num是類B的.

System.out.println("num= " + num);

//如果想顯示類A的num則需要用下列的super.num.這里注意num在類A中需是成員變量才可以.

System.out.println("super.num= " + super.num);

//子類繼承的私有name只能通過繼承的公有方法來訪問和修改;如果沒有提供公共方法,則不能訪問和修改

System.out.println("子類的name = " + this.getName());

}

@Override

public void setName(String name) {

super.setName(name);

System.out.println("這是子類B的重寫的");

}

}

class C extends A{

public C(){

System.out.println("子類C無參數構造函數");

System.out.println("cccccccccccccccc");

}

}

運行結果:

aaaaaaaaaaaaaaaaaaa

i= 10

bbbbbbbbbbbbbbbbbbbb

num= 0

super.num= 10

子類的name = default name

父類無參數構造方法

子類C無參數構造函數

cccccccccccccccc

從上邊例子中我們能看出,

子類是不繼承父類的構造器(構造方法或者構造函數)的,它只是調用(隱式或顯式)。如果父類的構造器帶有參數(但沒有無參數構造方法),則必須在子類的構造器中顯式地通過super關鍵字調用父類的構造器并配以適當的參數列表,因為子類的構造方法是必須調用父類的構造方法的,默認的調用無參數構造方法,如果沒有無參構造方法,就必須調用有參數的父類構造方法了。但如果父類有無參構造方法,那么子類默認會調用無參的構造方法。如果父類的構造器有沒有參數的,則在子類的構造器中不需要使用super關鍵字調用父類構造器,系統會自動調用父類的無參構造器。

如果父類中的成員變量是私有的(private),子類是不能訪問的和修改的,除非父類提供了公共方法來進行訪問和修改。

子類可以重寫(override)父類的方法,從而使子類具有自己獨特的功能。這其實是我們后邊講的多態的一種體現。

多態

在面向對象語言中,接口的多種不同的實現方式即為多態。那么在Java語言中,多態,意味著一個對象有著多重特征,可以在特定的情況下,表現不同的狀態,從而對應著不同的屬性和方法。多態的這種思想使Java語言更加的靈活,很多設計模式和spring框架中都使用到了多態技術。

具體的表現在這些方面:

父類定義子類來構建

接口定義實現類來構建

抽象類定義實體類來構建

類方法的重載(overload)和重寫(override)

我們還是通過一段代碼來了解:

public class PolymorphismDemo {

public static void main(String[] args) {

IParent p1 = new Child_A();

IParent p2 = new Child_B();

doSimpleCall(p1);

doSimpleCall(p2);

Child_A child_a = new Child_A();

Child_B child_b = new Child_B();

//child_a 沒有重寫父類的eat方法,所以執行的是父類的eat方法

child_a.eat();

//child_b重寫了父類的eat方法,所以執行自己的eat方法

child_b.eat();

//child_b對eat方法進行了重載,增加了一個輸入參數

child_b.eat("popcorn");

}

//這里我們并不知道具體傳給我們的是哪個實現Parent的類,但是他們都有一個共同的接口方法

public static void doSimpleCall(IParent p){

p.simpleCall();

}

}

interface IParent//父類接口

{

public void simpleCall();

}

//父類

class Parent{

public void eat(){

System.out.println("parent is eating");

}

}

class Child_A extends Parent implements IParent

{

public void simpleCall()

{

System.out.println("I am Child_A");

//具體的實現細節;

}

}

class Child_B extends Parent implements IParent

{

public void simpleCall()

{

System.out.println("I am Child_B");

//具體的實現細節;

}

@Override

public void eat() {

System.out.println("Child_B is eating");

}

//這里通過增加一個String類型的參數對eat方法進行方法的重載

public void eat(String food){

System.out.println("Child_b is eating" + food);

}

}

代碼運行結果:

I am Child_A

I am Child_B

parent is eating

Child_B is eating

Child_b is eating popcorn

在上邊代碼中,將子類的對象賦值給父類的變量的方式就叫做向上造型,但是反過來父類的對象不能賦值給子類。向上造型和類型轉換不一樣,類型轉換一般是針對基本類型來說的。

編程細節

在編寫Java程序時如果能注意一些編程細節,會對整個項目的開發帶來積極的作用,是你編寫的程序更容易的被讀懂和維護。在這里推薦在java的開發工具中安裝一個阿里巴巴開發規約插件p3c,有時間的也可以去閱讀《阿里巴巴Java開發手冊》和《effective java》。

---------------2020年07月08日 未完待續--------------------------------------

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的非洲瓜哇JAVA布的特点_java语言的基本特性以及编程细节的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。