1--類修飾符
1.1 public 公共類,一個類被聲明為public,表明它可以被所有其他的類所引用和通路。java中的類可以通過包的概念來組織,處于一個包中的類可以不需要任何說明而友善地互相通路和引用。而對于其他不再同一包中的類,一般來說,是不見的。當然也不鞥互相通路和引用。但是,如果被聲明public時,就具備了被引用和通路的條件,隻要import導入就ok了。
1.2 預設的。一個類沒有修飾符,就是預設的。隻能被同一個包中的類互相通路和引用。不能被其他的類引用和通路。
1.3 abstact 抽象類不能被執行個體化,隻有方法的聲明,而沒有方法體的實作。隻能通過子類來實作具體的功能。
1.4 final 該類不能被繼承即沒有子類。
2--域修飾符
2.1 非通路空孩子符
2.11 static 靜态域,屬于類的公共域,為該類所有對象所共享。可以看作是全局變量
2.12 final 常量,必須初始化(格式一般大寫)
2。13 volatile 可被幾個線程所控制和修改。通常,olatile用來修飾接受外部輸入和域。如表示目前時間的變量将有系統線程随時修改,以保證程式取到目前系統時間。
2。2 通路控制符
2.21 public
2.22 預設
2.23 protected
2.24 private
3---方法修飾符
3。1 非通路控制符
3.11 atstract
3.12 static
3.13 final
3.14 native(可以調用其他語言(c,c++)等外部語言程式。
3.15 synchronized(同步方法)線程的安全性。
3.2 通路控制符
3.21 public
3.21 private
3.23 protected
3.24 預設(友好)
通路控制符權限具體如下:
1。public 權限最大的,不僅在同一包中,同一類中,而且在不同包中,也可以直接通路.(不同包中通路,必須import)。
程式如下:a。同一個類中就不說了,肯定可以通路自己類中的成員變量和成員方法,但是如果修飾符還有static,則應該差別對待。
b。子類中。同一包,不同包中都開一被通路。
2。預設的 隻能被同一個包中的類通路和引用
3。protected 同一個類和同一個包中的類通路和引用
4。private 隻能被同一個類中通路自己的私有成員變量和方法
package pack1;
class Parent
{
public String name;
private String sex;
protected String address;
int age; //預設(友好)
Parent(String s){ this.name=s;};
public void setName(String s)
{ this.name=s; }
public String getName()
{ return name; }
public void setSex(String sex)
{ this.sex=sex; }
public String getSex()
{ return sex;}
public void setAddress(String add)
{ this.address=add; }
public String getAddress()
{ return address; }
public void setAge(int a)
{ this.age=a; }
public int getAge()
{ return age;}
}
class Son extends Parent
Son(String s)
{
super(s);
}
public class ModificationPublicTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
//in the same package
Parent par = new Parent("Lao Wu");
System.out.println("Name:"+par.name); //modification is public
//System.out.println("Sex:"+par.sex); //error: sex is private
System.out.println("Address:"+par.address);//modification is protected
System.out.println("Age:"+par.age); // age is friendly
//in the extends class(son class)
Son son = new Son("Xiao Wu");
System.out.println("Name:"+son.name); //modification is public
//System.out.println("Sex:"+par.sex); //error sex is private
System.out.println("Sex:"+son.getSex());//面象對象的封裝
System.out.println("Address:"+son.address);//modification is protected
System.out.println("Age:"+son.age); // age is friendly
}
package pack2;
import pack1.*;
public class ModificationTest {
public static void main(String args[])
{
//Parent parOther = new Parent("Lao Li"); //error-->The type Parent is not visible
//beacuse The modification of parent class is friend(預設的)
/* 是以修飾符為預設的類隻能被同一包中的類引用和通路
* 而另外包中的類要引用和通路其它包中的類,被通路類必須是public
*/
非通路控制符如下:-----------------------------------------------------
1。final final可以修飾方法,成員變量和類
a--》修飾成員變量是,可以在定義時指派,也可以在構造函數時指派。
b--》修飾方法和類,表示該類或方法是不可擴充的。即不能extends。
2。abstract 抽象類(抽象類很多知識點)。
3。static 類變量或者類方法,可以直接通過類名調用,而不用生成對象。
4。native 本地方法,可以調用非java程式,完成特殊的功能
5。synchronized synchronized 修飾符主要是用于多線程共存的程式中的協調和同步。