日韩性视频-久久久蜜桃-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语言的基本特性以及编程细节的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 亚洲视频在线播放免费 | 亚洲老女人视频 | 啪啪综合| 成人免费网站在线 | 国产日韩欧美自拍 | 中文字幕一区二区三区av | 一本色道综合久久欧美日韩精品 | 涩涩99| 午夜av在线播放 | 插插网站 | 乱中年女人伦 | 亚洲精品视频播放 | 中文字幕永久免费 | 极品少妇一区二区三区 | 人人射影院 | 精品久久中文 | 中文字幕视频一区二区 | 日本不卡一区在线观看 | 精品久久久久久久久久久久久久久久久 | 性做久久久久久免费观看 | 激情视频在线播放 | 午夜剧场福利 | 婷婷六月天| 久久综合丁香 | 韩国女主播一区 | 男人天堂av网 | 黄色av网站免费在线观看 | 男人在线视频 | 欧美一级免费黄色片 | 亚洲精品国产手机 | 永久免费av在线 | 天天操天天看 | 久久亚洲第一 | 欧美手机在线观看 | 黑人玩弄人妻一区二区三区影院 | jizzjizz亚洲 | 免费成人在线网站 | 日韩精品电影网 | 日韩视频在线观看视频 | julia一区二区三区中文字幕 | 欧美成人精精品一区二区频 | 国产精品v亚洲精品v日韩精品 | 色碰视频 | 久久不卡区 | 久久精品国产77777蜜臀 | 欧美激情免费在线 | 国产亚洲精品久久 | 一区二区三区偷拍 | 日韩精品一区二区三区电影 | 网址av | 中文字幕精品在线 | 成人伊人网 | 亚洲午夜小视频 | 婷婷激情成人 | 蜜色av | 免费午夜视频在线观看 | 日韩精品极品视频免费观看 | 超碰人人在线观看 | 未满十八18禁止免费无码网站 | 亚洲人久久| 天天综合在线视频 | 美女啪啪动态图 | 97超碰站 | 26uuu精品一区二区 | 长篇乱肉合集乱500小说日本 | 黄色日韩 | 无码人妻丰满熟妇区五十路 | 精品一区二区免费视频 | 成人啪啪18免费游戏链接 | 女同性αv亚洲女同志 | 91老师国产黑色丝袜在线 | 伊在线久久丫 | 久久精品屋 | 手机av观看 | www.黄色大片| 一级日韩片 | 亚洲一区二区三区四 | 日本久久成人 | 女人高潮被爽到呻吟在线观看 | 天堂精品| 一区二区三区偷拍 | www.九九九 | 一级片免费视频 | 久久久久久亚洲av无码专区 | 久久久久久久一区 | 国产女人毛片 | www.777奇米| 人与动物2免费观看完整版电影高清 | 男女爽爽 | 人人妻人人做人人爽 | 男女日日 | 黄色在线a| 欧美色图网址 | 97黄色片 | 阿v天堂2017 欧美小视频在线观看 | 精品视频999 | 亚洲成人午夜影院 | 淫视频网站 | 一区二区三区黄色片 |