javaSE学习笔记5——访问控制权限private、default、protected、public
2012-10-01 13:14
681 查看
理解封装:封装指的是将对象的内部状态信息隐藏在对象内部,不允许外部程序直接访问对象的内部信息,而是要通过该类所提供的方法来实现对内部信息的访问和操作。
举例:若不将类的属性封装,那么就可以通过对象来访问类的属性,比如在下面的例子里面,可以通过Person对象将年龄age直接赋值为1000,这样是非常不好的,而对属性进行封装了以后,可以在方法里面加入控制语句,控制年龄的范围,限制对属性的不合理的访问。而且可以进行数据检查,保证数据的完整性。
public class Person { public int age; public String name; }
经过封装以后:
public class Person { public int age; public String name; //把这些方法暴露出来,让这些方法来操作或访问属性 public int getAge() { return age; } public String getName() { return name; } public void setAge(int age) { if(age > 0 && age < 100) { this.age = age; } else { System.out.println("年龄范围不正确"); } } public void setName(String name) { this.name = name; } }封装要考虑两个方面:1、将对象的属性和实现细节封装起来,不允许外部直接访问。
2、将方法暴露出来,让方法或操作来访问这些属性。
访问控制符:private、default、protected、public
java中提供了三种访问控制符:private、protected、public,(default为不加任何访问控制符的访问级别)。它们的访问控制级别由小到大依次是:
private----->default------->protected------->public
private:被private修饰的只能被该类内部访问。
default:(包访问权限)只能被同一个包中的类访问。
ptotected:(子类访问权限)被protected修饰的属性或方法,既可以被同一包中的其他类访问,也可以被不同包中的子类访问。如果使用protected来修饰方法,通常是希望子类来重写这个方法。
public:可以被任何包中的类访问。
顶级类只能用public或者default修饰,不能使用private或protected修饰。
javac -d . Hello.java中-d是用于设置编译生成.class文件的位置,.表示当前位置。
java com.Hello运行的时候要把包名也加上。
java默认导入了java.lang包下的所有类。所以像那些System、Boolean、Double、Integer、String、Math、Thread等类,可以直接使用,无需导入包。
如果两个包中含有相同的类名,那么只能用包名.类名来使用这两个类,不然即使导入了两个包,使用该类的时候系统还是没法分清是那个包里面的。
import不但可以导入一个包中的类,而且可以导入一个类中的静态属性,这就可以用到import static方法。例如:import static com.edu.Text.count;导入了com.edu包下的类Text中的静态属性count。
import static java.lang.System.*;导入System中的所有静态属性
java中对象的属性系统会默认初始化的。
构造器:若构造器B中包含了构造器A,那么可以通过this来初始化B中的构造器A。代码如下:
public class Apple { public String name; public String color; public double weight; public Apple(String name,String color) { this.name = name; this.color = color; } public Apple(String name,String color,double weight) { //若把上面的构造器的代码在这里重写一遍,也可以实现构造器初始化,但是这样 //很不好,因为代码重复,以后修改很麻烦 //通过this调用另一个重载构造器的初始化代码 this(name,color); this.weight = weight; } }
相关文章推荐
- Java学习之访问权限Public,Private,Protected,Default的作用域
- Java中的访问控制权限public protected default private
- Java包及访问控制权限--(private/default/protected/public)及命名规范
- java中访问权限控制public protected default(friendly) 和private
- 访问控制权限public protected default private
- OC学习中关于@private@protected@pakege@public的访问权限和继承问题
- java 中 private public protected default 访问权限的区别
- java 访问权限控制 public protected private
- 详解 Java 中的访问控制修饰符(public, protected, default, private)
- public,protected,default ,private的访问权限
- C++语言笔记系列之三——类的定义以及private、public、protected访问权限
- J2SE_访问权限(public, protected, default, private)
- 方法访问权限控制(public,protected,package,private)
- C++的访问权限控制关键字:private / public / protected
- 例解public protected default private访问权限问题
- Java 访问权限控制public>protected>同包>private
- private,protected,public,默认四种访问控制权限
- Java之访问权限修饰符 private default protected public
- 访问权限控制public protected private
- Java public protected default private 访问权限区别