|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
今天是第十天,希望能坚持下去
封装(目的就是隐藏对象细节)
OOP三大特性——封装、继承、多态
①概念:a.将方法和字段一起包装到一个单元中,单元以类的形式实现。
b.信息隐藏(使用访问修饰符),隐藏对象的实现细节,不让外部直接访问到。
..对模块的任何实现细节所做的更改不会影响该模块的代码
..防止用户意外修改数据
..是模块易于使用和维护<可维护性>
c.将数据和方法包装进类中,加上具体实现的隐藏,共同被称作封装,其结果是一个同时带有特征和行为的数据类型。
Java语言提供了很多修饰符,主要分为以下两类:
a.访问修饰符(4种)
b.非访问修饰符(以下举例)
static 修饰符,用来创建类方法和类变量。(adj.静止的; 静电的; 不变的; [物] 静力的;
n.静电; 静力学; [物]静电(干扰); 争吵; )
final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。
abstract 修饰符,用来创建抽象类和抽象方法。(adj.抽象的,理论上的; 难解的; 抽象派的; 茫然的;
n.摘要; 抽象概念; 抽象派艺术作品; [化] 萃取物;
vt.提取,分离; 转移(注意等); 概括,摘录; <婉辞>剽窃; )
synchronized 和 volatile 修饰符,主要用于线程的编程。
(synchronized 同步的;
volatile adj.易变的,不稳定的; (液体或油) 易挥发的; 爆炸性的; 快活的,轻快的; )
②Java支持4种不同的访问权限。
默认的,也称为 default,在同一包内可见,不使用任何修饰符。
私有的,以 private 修饰符指定,只在同一类内可见。
共有的,以 public 修饰符指定,对所有类可见。
受保护的,以 protected 修饰符指定,对同一包内的类和所有子类可见。
方法继承的规则:
父类中声明为 public 的方法在子类中也必须为 public。
父类中声明为 protected 的方法在子类中要么声明为 protected,要么声明为 public,不能声明为 private。
父类中声明为 private 的方法,不能够被继承。
修饰符 | 当前类 | 同一包内 | 子孙类 | 其他包 | public | 是 | 是 | 是 | 是 | protected | 是 | 是 | 是 | 否 | default | 是 | 是 | 否 | 否 | private | 是 | 否 | 否 | 否 |
③属性封装的实现:a.修改属性的可见性
b.对每个属性创建一对赋值setter和取值getter方法,用于公开对这些属性的访问接口
c.在赋值setter和取值getter方法中,根据需要加入对属性操作的限制
④封装方法的目的:a.隐藏方法实现细节(方法体),向外提供公开接口(方法头),以供安全调用
b.简化调用,方便修改维护
c.根据需要,可以私有化方法以供内部使用——帮助方法(helper)
- public class Demo {
- public static void main(String[] args) {
- Teacher t=new Teacher();
- // t.name="TE";The field Teacher.name is not visible
- t.setName("TE");
- System.out.println(t.getName());
- t.setAge(12);
- System.out.println(t.getAge());
-
- }
-
- }
- class Teacher{
- private String name;
- private int age;
- public void setName(String tname){
- name=tname;
- }
- public String getName(){
- return name;
- }
- public int getAge(){
- return age;
- }
- public void setAge(int tage){
- if(tage<25){
- System.out.println("年龄较小~");
- age=25;
- }else{
- age=tage;
- }
-
- }
- }
复制代码
1. 在类中定义方法,void(方法名称前)表示不用返回值。
2. Java命名习惯中,方法名称前是小写。
|
评分
-
查看全部评分
|