Java暑期学习Day10
今天是第十天,希望能坚持下去{:7_130:}封装(目的就是隐藏对象细节)
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命名习惯中,方法名称前是小写。
加油,你坚持学下去,我坚持看下去! 小甲鱼 发表于 2017-7-14 23:54
加油,你坚持学下去,我坚持看下去!
非常谢谢你,一直觉得行走在路上很茫然,不管是哪方面,偶有的支持真的是生命最大的慰藉。之前通过你的教学视频来学习数据结构,后来就发现了这个论坛,觉得很温暖。
我会坚持下去的,生命不息,奋斗不止!
页:
[1]