八 三個修飾符

2021-07-11 21:47:06 字數 4066 閱讀 7811

三個修飾符

static修飾符

物件共享這種static

定義的東西(包含屬性,方法和**塊)。

修飾:1.屬性

訪問方式可以通過物件.

屬性名方式訪問,也可以通過

類名.屬性名

訪問static修飾的屬性什麼時候被初始化?

類變數在類載入的時候就已經初始化了,而類載入在建立物件之前。

public

classteststaticfield {

public

static

voidmain(string args) {

//todoauto-generated method stub //

"+student.address);

student s=newstudent();

student s1=newstudent();

s1.address

="煙台大學";

system.out

"+s1.address

);system.out

"+s.address

);/**

* 學生類*/

classstudent{

public

staticstring address

="煙台大學

";privatestring name;

private

intage;

private

doublescore;

publicstring getname() {

returnname;

public

voidsetname(string name) {

this.name = name;

public

intgetage() {

returnage;

public

voidsetage(intage) {

this.age = age;

public

doublegetscore() {

returnscore;

public

voidsetscore(doublescore) {

this.score = score;

2.方法

非靜態方法無論屬性和方法是否是靜態的都可以訪問 

靜態方法只能訪問靜態屬性和靜態方法

靜態方法中不能使用this關鍵字

子類靜態的方法可以覆蓋父類靜態的方法,但是失去了多型。

靜態的屬性或者方法都是跟類繫結的,而非靜態的都是和物件繫結的。

3.靜態**塊

靜態**塊在類載入的時候,可以認為是使用類的時候該類內的靜態塊會執行。

public

classteststatic {

public

static

voidmain(string args) {

//todoauto-generated method stub

student.sleep();

classstudent{

static{

system.out

.println("---------------");

static

intage

;string name;

final修飾符

final ---最後的,最終的。

1. 修飾變數

例項變數,區域性變數。

一旦賦值,他的值就不能改變

區域性變數可以先定義成final

,然後在進行賦值,但是只能賦值一次。

final int a;

a=10;

final修飾屬性時,必須對屬性顯示賦值或提供構造方法對屬性賦值

通過構造方法賦值:class a{

final int  a;

public a(int a){

this.a=a;

static和

final

可以結合使用來定義乙個常量,並且該常量歸類所有。可以通過類名

.屬性名訪問

public static final double pi = 3.14159265358979323846;

public

classtestfinalvariable {

public

static

final

intma

=0;//屬性如果定義為

final

要求開始定義的地方就要進行初始化或者也可以不初始化,但是

public

static

voidmain(string args) {

//todoauto-generated method stub

/*final

intla

;//final修飾的區域性變數只能被賦值一次

//修改區域性變數的值

la=9;

system.out.println(

la);*/ //

testfinalvariable t=new testfinalvariable(3);

system.out

.println(testfinalvariable.ma

);final修飾的變數不能修改,方法不能被重寫,類不能被繼承,可以和        

static

聯合使用     

abstract修飾符

什麼是抽象?

不容易出錯,沒有具體的解決方案,但是提供了乙個規範

可以用於類和方法的修飾

1.如果乙個類中某個方法是抽象的,這個類就必須是抽象的。

abstract

classstudent{

static{

system.out

.println("---------------");

static

intage

;string name;

public

abstract

voidstudy();

public

static

voidsleep(){

system.out

.println("i sleep 8 hours");

2.乙個類裡面所有的方法都是非抽象的,這個類也可以宣告為

abstract

3抽象類可以被子類繼承,並重寫其中的抽象方法

4抽象類不能直接用來建立物件

三個修飾符 final

一.final的作用 1.final 可以修飾變數 區域性變數 例項變數 靜態變數 1 final 修飾的變數是作用範圍內的常量,只允許一次賦值,不允許更改。注意 final修飾的變數通常以全大寫字母作為名字,例如 final double pi 3.14 2 final 修飾例項變數,jvm不在分...

接上章 三個修飾符

chp8.三個修飾符 一 static 靜態 1.概念 static修飾符標示類級別成員。2.靜態屬性 類變數 i.全類共有的屬性 不屬於某個例項物件 ii.訪問靜態屬性可以使用 類名.靜態屬性名。如 person.sun 3.靜態方法 類方法 i.全類共有的方法 不屬於某個例項物件 ii.訪問靜態...

修飾符 許可權修飾符

四種形式許可權修飾符的訪問情況 publicprotected不寫private 同乙個類中 四種都可以 同一包中的不同類 除了private剩下都可以 不同包下的子類 public protected 可以 不同包下的不同類 只有public可以 許可權修飾符 public protected 預...