精华内容
下载资源
问答
  • 访问权限修饰符 访问权限修饰符 public:共有访问。对所有的都可见。 protected:保护型访问。对同一个包可见,对不同的包的子类可见。 default:默认访问权限。只对同一个包可见,注意对不同的包的子类不可见...

    分类

    Java语言提供了很多修饰符,大概分为两类: 

    1. 访问权限修饰符 

    2. 非访问权限修饰符

    访问权限修饰符

     

     

    1. public:共有访问。对所有的类都可见。
    2. protected:保护型访问。对同一个包可见,对不同的包的子类可见。
    3. default:默认访问权限。只对同一个包可见,注意对不同的包的子类不可见。
    4. private:私有访问。只对同一个类可见,其余都不见。


     

    非访问权限修饰符

    1. static 修饰符,用来创建类方法和类变量。
    2. final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。
    3. abstract 修饰符,用来创建抽象类和抽象方法。
    4. synchronized 用于多线程的同步。
    5. volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。
    6. transient:序列化的对象包含被 transient 修饰的实例变量时,java 虚拟机(JVM)跳过该特定的变量。

     

     

    外部类修饰符

    • public(访问控制符),将一个类声明为公共类,它可以被任何对象访问,一个程序的主类必须是公共类。
    • default(访问控制符),类只对包内可见,包外不可见。
    • abstract(非访问控制符),将一个类声明为抽象类,抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充,抽象类可以包含抽象方法和非抽象方法。。
    • final(非访问控制符),将一个类生命为最终(即非继承类),表示它不能被其他类继承。 

     注意: 

    1.protected 和 private 不能修饰外部类,是因为外部类放在包中,只有两种可能,包可见和包不可见。 

    2. final 和 abstract不能同时修饰外部类,因为该类要么能被继承要么不能被继承,二者只能选其一。 

    3.不能用static修饰类,因为类加载后才会加载静态成员变量。所以不能用static修饰类和接口,因为类还没加载,无法使用static关键字。

     

    内部类修饰符

           内部类与成员变量地位一直,所以可以public,protected、default和private,同时还可以用static修饰,表示嵌套内部类,不用实例化外部类,即可调用。

    方法修饰符

    1. public(公共控制符),包外包内都可以调用该方法。
    2. protected(保护访问控制符)指定该方法可以被它的类和子类进行访问。具体细节可参考:http://blog.csdn.net/dawn_after_dark/article/details/74453915
    3. default(默认权限),指定该方法只对同包可见,对不同包(含不同包的子类)不可见。
    4. private(私有控制符)指定此方法只能有自己类等方法访问,其他的类不能访问(包括子类),非常严格的控制。
    5. final ,指定方法已完备,不能再进行继承扩充。
    6. static,指定不需要实例化就可以激活的一个方法,即在内存中只有一份,通过类名即可调用。
    7. synchronize,同步修饰符,在多个线程中,该修饰符用于在运行前,对它所属的方法加锁,以防止其他线程的访问,运行结束后解锁。
    8. native,本地修饰符。指定此方法的方法体是用其他语言在程序外部编写的。
    9. abstract ,抽象方法是一种没有任何实现的方法,该方法的的具体实现由子类提供。抽象方法不能被声明成 final 和 static。 任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。 如果一个类包含若干个抽象方法,那么该类必须声明为抽象类。抽象类可以不包含抽象方法。 抽象方法的声明以分号结尾,例如:public abstract sample();。

     

    成员变量修饰符

    • public(公共访问控制符),指定该变量为公共的,它可以被任何对象的方法访问。
    • protected(保护访问控制符)指定该变量可以别被自己的类和子类访问。在子类中可以覆盖此变量。
    • default(默认权限),指定该变量只对同包可见,对不同包(含不同包的子类)不可见。
    • private(私有访问控制符)指定该变量只允许自己的类的方法访问,其他任何类(包括子类)中的方法均不能访问。
    • final,最终修饰符,指定此变量的值不能变。
    • static(静态修饰符)指定变量被所有对象共享,即所有实例都可以使用该变量。变量属于这个类。
    • transient(过度修饰符)指定该变量是系统保留,暂无特别作用的临时性变量。不持久化。
    • volatile(易失修饰符)指定该变量可以同时被几个线程控制和修改,保证两个不同的线程总是看到某个成员变量的同一个值。 

     final 和 static 经常一起使用来创建常量。

     

    局部变量修饰符

    only final is permitted。 

    为什么不能赋予权限修饰符? 

    因为局部变量的生命周期为一个方法的调用期间,所以没必要为其设置权限访问字段,既然你都能访问到这个方法,所以就没必要再为其方法内变量赋予访问权限,因为该变量在方法调用期间已经被加载进了虚拟机栈,换句话说就是肯定能被当前线程访问到,所以设置没意义。 

    为什么不能用static修饰 

    我们都知道静态变量在方法之前先加载的,所以如果在方法内设置静态变量,可想而知,方法都没加载,你能加载成功方法内的静态变量?

     

    接口

    接口修饰符

    接口修饰符只能用public、default和abstract。 

    不能用final、static修饰。

    接口默认修饰为abstract。

    接口中方法修饰符

    only public & abstract are permitted 。 

    意思只能用 public abstract修饰,当然如果你什么都不写,默认就是public abstract。 

    注意:在Java1.8之后,接口允许定义static 静态方法了!所以也可以用static来修饰!

    展开全文
  • 1.访问权限修饰符有四个 2.访问权限修饰符可以修饰成员变量,成员方法,还可以修饰(只有public可以) 在这里需要注意,其实protected/private也可以修饰,但是必须是内部 四个修饰符的特点 1.public修饰的成员...

    访问权限修饰符

    图解:
    访问权限修饰符
    1.访问权限修饰符有四个
    2.访问权限修饰符可以修饰成员变量,成员方法,还可以修饰类(只有public可以)
    在这里需要注意,其实protected/private也可以修饰类,但是必须是内部类

    四个修饰符的特点
    1.public修饰的成员对一切类可见
    2.protected修饰的成员对子类可见
    3.default修饰的成员仅对同包下可见
    4.private修饰的成员仅对本类可见

    访问权限修饰符的宽严关系
    public > protected > default > private

    Java当中封装就是通过访问权限修饰符来实现的
    封装: 就是屏蔽内部的成员,而屏蔽内部的成员是通过访问权限修饰符来控制的

    方法重写

    为什么需要方法重写?
    如果父类的方法的实现不能够满足子类的需求

    重写的特点:
    1.发生具有子父类关系的两个类中
    2.方法名称相同
    3.参数列表相同
    4.返回值类型相同或者是其子类
    5.访问权限修饰符不能严于父类
    public > protected > default > private

    私有方法不能被重写,因为私有方法不能够被继承,所以谈不上重写

    面试题:
    重写和重载的区别?
    二者是两个完全不一样的概念,毫无关系

    重写的注意事项:
    1.私有方法不能被重写,因为私有方法不能够被继承,所以谈不上重写
    2.构造方法能不能重写? 不能,因为构造方法不能够被继承,所以构造方法不能够被重写
    3.子类重写父类的方法时,访问权限修饰符不能更低,严格
    4.返回值类型相同或者是其子类
    5.重载和重写的区别

    重写是多态的必要条件,重载也是多态的一种表现形式

    展开全文
  • 访问权限修饰符有public protected public 还有默认的default public:共有的,就和我们平时的公共场合一样,毫无疑问,这是每个人都能来的,来者不拒,每个人都平等的机会来这,在Java中,也是这样,只要是被...

    类的访问权限修饰符有public protected public 还有默认的default

    public:共有的,就和我们平时的公共场合一样,毫无疑问,这是每个人都能来的,来者不拒,每个人都有平等的机会来这,在Java中,也是这样,只要是被public所修饰的属性方法等,无论是本类、子类、同一个包下,还是不在一个包都能被访问

    protected:受保护的,字面意思我们就知道,他肯定不像public那样来者不拒,而是被一些事物保护的,所以,protected所修饰的属性方法等可以被本类、子类、同一个包访问,对于外来人员,是拒之门外的,不见陌生人

    default(修饰包):默认的,他的权限较之protected又有点低了,平时我们也不太使用这个访问权限符,defaul修饰方法可以被本类、同一个包访问

    !!!default不能修饰变量

    private:私有的,当然只能给自己看,所以private修饰的方法属性只能被本类访问,也更好地将我们的属性方法等封装起来,表现面向对象的有点,给使用者减少了困难

    为了能清楚地区分这几个修饰符,我整理了一张表出来
    在这里插入图片描述
    这里我们谈谈private,既然private修饰符修饰的属性只能被本类成员访问,那是不是我们用private修饰属性的时候,我们类的调用者是不是就不能使用这个被private修饰的属性了呢?

    答案是NO

    概念肯定是正确的,就是说被private修饰的属性只能被本类成员访问,可是当我们类的调用者需要使用时,我们可以转换一下,转换成被本类访问不就可以了吗
    我们直接拿代码看

    class Person{
    	private String name = "张三";
    	private int age = 18;
    	public void show(){
    		System.out.println("我叫" + name + ", 今年" + age + "岁了");
    	}
    }
    public class Test{
    	public static void main(String[] args){
    		Person person = new Person();
    		person.show();
    	}
    }
    //执行结果
    我叫张三,今年18岁了
    

    在这份代码中,属性 name , age 被 private 修饰,如果我们直接用 person.name 或者 person.name 肯定是不通过的,但是 show 是个公有方法,可以使用,所以我就想在 show 中访问属性,打印出来,所以问题就变成怎么访问 show 方法,show 是公有方法,我们直接通过引用.方法名称调用即可

    可是,问题又来了,如果我想修改被 private 修饰的属性的值时,该怎么办呢?这里,Java为我们提供了 getter 和 setter 方法

    class Person{
    	private String name;
    	private int age;
    	public void setName(String n){
    		name = n;
    	}
    	public String getName(){
    		return name;
    	}
    }
    public class Test{
    	public static void main(String[] args){
    		Person person = new Person();
    		person.setName("caocao");
    		System.out.println(person.getName());
    	}
    }
    //执行结果
    caocao
    
    • setName 为setter 方法,表示设置成员的值
    • getName 为getter 方法,表示获取成员的值
    展开全文
  • java四种访问权限修饰符java权限修饰符public 、protected、private置于 的成员定义前,用来限定对象对该成员的访问权限特点 java权限修饰符public 、protected、private置于 的成员定义前,用来限定对象对该...

    java权限修饰符public 、protected、private置于 类的成员定义前,用来限定对象对该类成员的访问权限

    可访问权限表

    修饰符类内部同一个包子类任何地方
    privateYES
    (缺省)YESYES
    protectedYESYESYES
    publicYESYESYESYES

    特点

    1. 可以用来修饰属性、方法
      A. 被访问权限从大到小排列:public protected default(缺省)private
    • 对于class的权限修饰只可以使用public和default(缺省)。
      public类可以在任何地方被访问
      default类只可以被同一个包内部类访问。
    展开全文
  • Java访问权限修饰符

    2017-03-06 16:49:06
    修饰符使用情况Java访问权限修饰符  Java的访问权限修饰符一共四个:private,默认的(default),protected,public。其中,默认的权限是friendly。 权限修饰符 本 同包中子 同包其他 不同包中子 不同...
  • Java访问权限修饰符详解

    千次阅读 2018-05-14 10:04:54
    Java中的访问权限修饰符(Java关键字)今天很皮的发现,自己现在竟然不会玩儿Java基础了,就翻看了一下自己的笔记,写一篇文章复习一下!测试环境:Java运行环境,myEclipse。测试前准备:实体包(Student,...
  • 四种,分别是private、default、protected、public。...default:即不加任何访问权限修饰符,通常称为“默认访问权限”或者“包访问权限”。该模式下,只允许在同一个包中访问。protected: 介于public...
  • 访问权限修饰符

    2016-04-07 20:35:32
    访问权限修饰符  a、私有权限(private)  private可以修饰数据成员,构造方法,方法成员,不能修饰(此处指外部,不考虑内部)。被private修饰的成员,只能在定义它们的中使用,在其他中不能调用。 ...
  • java访问权限修饰符

    2014-03-11 19:27:36
    Java访问权限修饰符
  • 访问控制修饰符共有4个,分别是public、private、protected 和 default(默认的) Java中的访问控制修饰符访问权限
  • 访问权限修饰符 公有 public 私有 private 保护 protected 默认 default 权限修饰符 权限修饰符 私有private 默认default 保护protected 公有 public 只有内部允许私有,只能在当前中...
  • 1)public:公开的,任何  2)private:私有的,本  3)protected:受保护的,本、子类、同包  4)x默认的:什么也不写,本、同包  访问修饰: public和默认的  中成员的访问修饰: 如上4种都可以...
  • java中的访问权限修饰符 含义及分类

    千次阅读 2017-05-21 10:59:12
    java中的权限修饰符(访问修饰符)四个:公共的(public)、默认的、受保护的(protected)和私有的(private) 私有的(private就是只能在该访问,不能在其他中直接访问,即使是通过该的实体也不能直接访问,要...
  • Java 中的权限修饰符主要包括private、public和protected,这些修饰符控制着的成员变量以及成员方法的访问。 private:如果一个的成员变量或成员方法被修饰为private,则该的成员变量只能在本中被使用...
  • 访问权限修饰符通常位于语句最前端,用于定义、方法及变量 举例说明: public class Demo { private String name; double score; protected void funny(){ } } 四种访问权限修饰符 **private(私有):**被...
  • 四种访问权限修饰符

    千次阅读 2017-10-30 22:04:47
    Java权限修饰符public、protected、private置于的成员定义前,用来限定对象对该成员的访问权限对于class的权限修饰只可以用public和default(缺省)。  Øpublic可以在任意地方被访问。  Ødefault只...
  • 在C#中,方法和属性共有default、public、private、protected、internal、protected internal六种访问权限修饰符。 1. default-默认访问权限 方法和属性前面没有权限修饰符时,表示为默认访问权限,在C#中,默认...
  • php面向对象之访问权限修饰符

    千次阅读 2016-12-07 18:21:44
    public(公共的、默认)在PHP5中如果没有指定成员的访问修饰符,默认就是public的访问权限。 protected(受保护的)被声明为protected的成员,只允许该的子类进行访问。 private(私有的 ) 被定义为
  • Java访问权限修饰符的区别

    万次阅读 多人点赞 2016-01-15 15:07:58
    Java四种访问权限,其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符
  • Java权限修饰符

    千次阅读 2018-06-26 09:45:49
    权限修饰符:public、默认(包访问权限)、protected、private其他修饰符:abstract、static、fianl、transient、volatile、native、synchronized、strictrp二、权限修饰符: 权限修饰符:可以修饰成员(包括...
  • 本文讨论Java语言的访问权限修饰符部分。 Java需要打包,打包后可以进行访问权限控制。本文中,将对Java语言中的访问权限修饰符,进行简单介绍。 ...一个Java应用很多,...Java语言中的访问权限修饰符有4种,但
  • Java权限修饰符访问权限以及导包细节

    万次阅读 多人点赞 2018-07-26 21:19:26
    4种权限修饰符访问权限表 为了检验该表的正确与否,用一些简单代码进行了测试: 1、首先是同一个(Farther)中,4种权限修饰符所修饰成员的访问情况 2、然后是同一个包中(子类与其它))4种权限修饰...
  • 权限修饰符

    千次阅读 2016-04-17 20:39:33
    PHP5以后的版本中,可以对中属性和方法的访问权限进行限定,将中的成员分为私有成员、保护成员和公有成员。这样使得PHP的面向对象的编程方式更加人性化,开发的程序安全性也明显的提高。可以说,PHP5的面向...
  • java 访问权限修饰符理解

    千次阅读 2016-04-07 19:26:50
    访问权限修饰符 a、私有权限(private)  private可以修饰数据成员,构造方法,方法成员,不能修饰(此处指外部,不考虑内部)。被private修饰的成员,只能在定义它们的中使用,在其他中不能调用。  ...
  • 该笔记主要记录我对于被Java的四个访问权限修饰符所修饰的域和方法在被直接使用(调用)、继承后的直接使用和继承后的方法覆盖三方面的认识: 第一,直接使用的情况:  1.被public修饰的域和方法,不管在所属...
  • C#访问权限修饰符

    2013-03-15 10:11:52
    C#中及类型成员修饰符有以下四类:public,private,protected,internal。 public 及类型成员的修饰符 private 类型成员的修饰符 protected 类型成员的修饰符 internal 及类型成员的修饰符 由以上四类...
  • Java中访问权限修饰符

    2013-04-01 07:16:15
    Java中访问权限修饰符public protected 缺省默认 private的用法总结  1、访问权限符:  (1)public:  对于成员来说:任何其他都可以访问它们,不管在同一个包中还是在另外的包中。  对于类来说: 也是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 85,321
精华内容 34,128
关键字:

对于类的访问权限修饰符有