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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java接口文件定义类_Java入门笔记(四)类、包和接口

發布時間:2025/3/15 java 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java接口文件定义类_Java入门笔记(四)类、包和接口 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、類 class

public class Person{

String name;

int age;

Person(String name, int age){

this.name = name;

this.age = age;

}

void sayHello(){

System.out.println("Hello!");

}

}

1. 屬性

a. 字段

也就是成員變量,在構造方法中進行初始化,沒有指針的概念,需要訪問時直接使用p.name的方法

仍舊可以用this.表示域內的變量

b. 方法

構造方法

constructor,方法名與類名相同,如果不定義構造方法,系統會定義一個默認構造方法

this中還可以使用this調用另一構造方法,如在person類中添加

Person(){

this("lilei", 0); // 這條調用語句要放在第一行

}

方法重載

方法的參數個數或者參數的類型不同,通過重載可以實現多態(polymorphism)

c. 修飾符

訪問修飾符()+其他修飾符(abstract等)

訪問修飾符

public(非子類、子類、同包類、自身)、protected(子類、同包類、自身)、private(自身),默認(同包類、自身)

字符用private修飾從而更好地封裝和隱藏,但是可以用setter和getter暴露出來,bean規范

其他修飾符

static

靜態的,可以修飾內部類和成員

不保存在某個對象的內存中,而是存儲在公共存儲單元中,如System類的in和out

屬于整個類,不能操縱某個對象的成員變量,只能調用static域或者static方法

不能訪問實例變量,不可以使用this和super

使用類名直接調用static方法

import static

final

最終的,不可改變的,可以修飾類、成員、局部變量

如果修飾類,表示這個類不可以被繼承

如果修飾方法,就是不能被子類覆蓋的方法

如果修飾字段,那么一旦給定值,就不可以修改,且必須顯式賦值(定義時賦值或構造函數總能賦值)

如果修飾局部變量,可以從變量中取值,final a = b;

static final可以表示常量,如Integer.MAX_VALUE,如果不給初始值,就默認進行初始化

abstract

抽象的,不可實例化的,可以修飾類和成員

如果修飾類,該類不可以被實例化,不可以new

如果修飾方法,則不需要實現,只聲明即可

如果一個類中包含了抽象方法,那么這個類就要被聲明為abstract類,而在子類中實現,如果子類中仍然沒有實現,那么子類也需要abstract

2. 繼承

class Teacher extends Person{

String school;

String subject;

void teach(){}

}

子類(subclass)、父類或超類(superclass)

父類包括所有直接或間接被繼承的類,一個子類只能直接繼承于1個類,子類可以繼承、修改、添加父類的狀態和行為,但是構造方法是不能夠被繼承的

沒有繼承關系則類默認為java.lang.Object對象

a. 方法覆蓋 Override

@Override

void sayHello(){

System.out.println("Hello everybody!");

}

b. 方法重載

void sayHello(Teacher another){

System.out.println("Hey!");

}

c. super

可以用來訪問父類的字段和方法,構造方法不能被繼承,但是使用super可以調用父類的構造方法

Teacher(String name, int age, String school){

super(name, age);

...

}

d. 父類子類的轉換

子類對象可以視為父類的一個對象

父類對象不能當做子類的對象

如果一個方法的形參是父類對象,調用方法時可以用子類

如果父類引用的實際上是一個子類對象,那么可以強制類型轉換為子類對象的引用,如Person liu = new Teacher(xxx);可以使用Teacher wang = (Teacher) liu;

二、包 package

import package[.pkg[.xxxx]]

包實際是為了解決名字空間(存儲路徑)問題和可訪問性問題(同一個包里面的各個類可以互相訪問)

包層次的根目錄由CLASSPATH決定,如果沒有package語句,就是無名包

java編譯器自動導入java.lang

javac可以將.class文件放入想用的目錄,使用-d指明包的根目錄,運行程序時指明含有main的類名

java和javac可以用-classpath指明引用的類的路徑,也可以設置系統變量

三、接口 Interface

接口就是一個高度抽象的類,用來描述某種特征,所有的方法都是public abstract,java8以上還可以聲明static方法以及具有實現的方法

實現接口時需要使用implements,可以實現多繼承,與繼承是無關的

面向接口編程而不是面向實現,Interface = new class()

可以實現不相關類的相同特征,通過接口可以指明多個類需要實現的方法

接口中定義的常量可以被實現該接口的多個類共享,通常全部大寫

interface Transport{

int INITIAL = 100;

double getSpeed();

}

public Car implements Transport{}

四、語法小結

完整的類的定義

[public] [abstract | final] class [extends ]

[implements] [InterfaceNameList(,分割)]{

[public | protected | private] [static] [final] [transient] [volatile] type variableName;

[public | protected | private] [static] [final | abstract] [native] [synchronized] returnType methodName()[throws]

}

完整的接口的定義

[public] interface InterfaceNmae [extends superInterfaceList]{

type constantName = Value;

returnType methodName();

|

固定聲明方式

構造方法

className(){}

main方法

public static void main(String args[])

finalize()方法

protected void finalize() throws throwable{}

完整java文件

package packageName; // 只能有1個

import packageName.xxx.*;

public classDefinition{} // public的類的定義 0或1個

interfaceDefinition and classDefination //0或多個

總結

以上是生活随笔為你收集整理的java接口文件定义类_Java入门笔记(四)类、包和接口的全部內容,希望文章能夠幫你解決所遇到的問題。

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