javaSE-基础篇-修饰符(private protected public)
2013-03-31 21:34
381 查看
java中提供了4中访问控制权限,分别是:private:私有的,只能本类中访问默认的:也就是没有写private 或 protected 或public的:同一个包中可见(同一个类中当然也可见)。protected:受包和继承关系的保护,本包中可以访问,不同包中的子类可以访问,当然,同一个包中的子类更能访问了public:公开的,都可以访问的到。
在说明访问控制权限之前,我们先来看一下,我们学的修饰符都可以修饰哪些东西:比如,private可以修饰局部变量吗?
说明:这里的Y表示可以修饰,N表示不可以修饰。下面我们说protected的使用及注意事项:1、同一个包中的本类,其他类,子类都是能访问的到的(有学生去关注了不同包,反而忽略了同一个包,特此说明,或者写下代码,一下就清楚了)。2、不同包中,父类不能访问,子类内部可以访问,其他类中的子类对象不能访问。父类:package com.aiai.study.oo;
public class Pet {
protected int i = 3;
}
子类 测试类: package com.aiai.study;
import com.aiai.study.oo.Pet;
public class Dog extends Pet {
public static void main(String[] args) {
Pet p = new Pet();
// 不同包中的父类对象不能访问
// p.i = 3;
// 不同包中的子类内部可以访问
Dog dog = new Dog();
dog.i = 3;
}
}
class Test {
public void test() {
Dog dog = new Dog();
// 不同包中非子类中,不能通过子类对象访问
// dog.i = 3;
}
}
作用域 | private | 默认 | protected | public |
本类 | Y | Y | Y | Y |
同一包中的类 | Y | Y | Y | |
不同包中的子类 | Y | Y | ||
不同包中的非子类 | Y |
Public | Protected | -- | Private | Static | Final | Abstract | |
类 | Y | Y | Y | N | N | Y | Y |
属性 | Y | Y | Y | Y | Y | Y | N |
方法 | Y | Y | Y | Y | Y | Y | Y |
局部变量 | N | N | N | N | N | Y | N |
内部类 | Y | Y | Y | Y | Y | Y | Y |
public class Pet {
protected int i = 3;
}
子类 测试类: package com.aiai.study;
import com.aiai.study.oo.Pet;
public class Dog extends Pet {
public static void main(String[] args) {
Pet p = new Pet();
// 不同包中的父类对象不能访问
// p.i = 3;
// 不同包中的子类内部可以访问
Dog dog = new Dog();
dog.i = 3;
}
}
class Test {
public void test() {
Dog dog = new Dog();
// 不同包中非子类中,不能通过子类对象访问
// dog.i = 3;
}
}
相关文章推荐
- 【JavaSE系列-基础篇6】——变量
- 【JavaSE系列-基础篇6】——为什么使用泛型?
- java 修饰符public protected default private
- (面试)C# 修饰符(public,private,internal…………)
- virtual、inline、interface、override、public系列修饰符之间函数关系
- C#访问修饰符:public、protected、internal、private
- Javase—OOP修饰符、接口及类和类之间的关系
- JavaSE:3min讲解权限修饰符
- 访问修饰符(public,private,protected,internal,sealed,abstract)
- (C++)权限修饰符 public private protected的联系与区别
- Android之JAVASe基础篇-面向对象-常用类库(八)
- JavaSE入门学习10:Java修饰符
- java中的public,private,protected修饰符,以及不写(默认)时的区别
- c#中访问修饰符public,private,protected,internal,protected internal的区别
- php中的修饰符public,protected,private
- Java中 访问修饰符public、private、protect、default作用范围
- 【JavaSE系列-基础篇6】——变量默认值
- 【JavaSE系列-基础篇6】——泛型类型
- C#共有五种访问修饰符:public、private、protected、internal、protected internal。作用范围如下表:
- java 修饰符public protected default private