天天看点

java修饰符

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 修饰符主要是用于多线程共存的程序中的协调和同步。

继续阅读