java面向对象-理解封装思想
2018-03-19 17:15
344 查看
20180304 java面向对象-理解封装思想
class Person
{
String name;
int age;
}
//演示封装
class PersonDemo
{
public static void main(String[] args)
{
Person p = new Person;
p.name = "BaiHe";
p.age = 18;
Sysyem.out.println(p.name + ","+p.age);
}
}
eg:
保存联系人功能:
void save(String name,int age,String phoneNumber,String email,String Address...)
因为保存联系人时,可以保存多个信息,那么保存方法就必须设置成具有多个参数的。
发现问题:方法的参数列表出现爆炸式增长。
把联系人的信息看成一个整体。
class LinkMan
{
String name;
int age;
String Address;
String phoneNumber;
String email;
}
上述保存联系人的方法;
void save(Linkman man){}
什么是封装(面向对象的三大特征之一):
1、把对象的状态和行为看成一个统一的整体,将二者存放在一个独立的模块中(一个类中)。
2、“信息隐藏”:把不需要让外界知道的信息隐藏起来,尽可能隐藏对象功能实现细节,向外暴露方法,保证外界安全(把所有数据信息隐藏起来,尽可能隐藏多的功能,只向外暴露便捷的方法,以供调用)。
封装的好处:
1、使调用者正确,方便地使用系统功能防止调用者随意修改系统属性
2、提高组件的重用性
3、达到组件之间的低耦合性(当某一个模块实现变化时,只要只要对外暴露 的接口不变,就不会影响到其他模块)。
通过什么来实现隐藏和暴露功功能呢?
高内聚:把该模块的内部数据、功能细节隐藏在模块内部,不允许外界直接干预。
低耦合:该模块只需要给外界暴露少量功能方法。
可以把上述代码改成这样,以体现封装性:
class Person
{
String name;
private int age;//只能在本类中使用age变量。
void setAge(int a)
{
if(a<0)
{
System.out.println("年龄不能为负数");
return;//表示结束方法
}
age = a;
}
}
//演示封装
class PersonDemo
{
public static void main(String[] args)
{
Person p = new Person();
p.name = "BaiHe";
p.setAge(17);
Sysyem.out.println(p.name + ","+p.age);
}
}
class Person
{
String name;
int age;
}
//演示封装
class PersonDemo
{
public static void main(String[] args)
{
Person p = new Person;
p.name = "BaiHe";
p.age = 18;
Sysyem.out.println(p.name + ","+p.age);
}
}
eg:
保存联系人功能:
void save(String name,int age,String phoneNumber,String email,String Address...)
因为保存联系人时,可以保存多个信息,那么保存方法就必须设置成具有多个参数的。
发现问题:方法的参数列表出现爆炸式增长。
把联系人的信息看成一个整体。
class LinkMan
{
String name;
int age;
String Address;
String phoneNumber;
String email;
}
上述保存联系人的方法;
void save(Linkman man){}
什么是封装(面向对象的三大特征之一):
1、把对象的状态和行为看成一个统一的整体,将二者存放在一个独立的模块中(一个类中)。
2、“信息隐藏”:把不需要让外界知道的信息隐藏起来,尽可能隐藏对象功能实现细节,向外暴露方法,保证外界安全(把所有数据信息隐藏起来,尽可能隐藏多的功能,只向外暴露便捷的方法,以供调用)。
封装的好处:
1、使调用者正确,方便地使用系统功能防止调用者随意修改系统属性
2、提高组件的重用性
3、达到组件之间的低耦合性(当某一个模块实现变化时,只要只要对外暴露 的接口不变,就不会影响到其他模块)。
通过什么来实现隐藏和暴露功功能呢?
高内聚:把该模块的内部数据、功能细节隐藏在模块内部,不允许外界直接干预。
低耦合:该模块只需要给外界暴露少量功能方法。
可以把上述代码改成这样,以体现封装性:
class Person
{
String name;
private int age;//只能在本类中使用age变量。
void setAge(int a)
{
if(a<0)
{
System.out.println("年龄不能为负数");
return;//表示结束方法
}
age = a;
}
}
//演示封装
class PersonDemo
{
public static void main(String[] args)
{
Person p = new Person();
p.name = "BaiHe";
p.setAge(17);
Sysyem.out.println(p.name + ","+p.age);
}
}
相关文章推荐
- 对java中面向对象思想的理解
- JAVA基础再回首(四)——面向对象思想、类与对象、成员/局部变量、匿名对象、封装、private、this、构造方法
- java面向对象思想如何理解
- 超级容易理解!!!Java的面向对象思想———类与对象。
- Java基础 - 面向对象思想,匿名对象,封装
- java面向对象思想如何理解
- Java经典封装JDBC模板(充分体现面向对象思想)
- java编程面向对象思想:封装,继承,多态
- java面向对象思想的认识与理解
- JAVA基础第五天学习日记_面向对象开发思想、匿名对象、封装、私有、构造函数
- java基础知识系列---面向对象思想的理解
- Java面向对象思想之一:封装
- java面向对象思想的理解
- java面向对象基本思想--封装继承多态
- 对java中面向对象思想的理解
- java web开发工程师 对面向对象思想 的不理解
- Java经典封装JDBC模板(充分体现面向对象思想)
- java中面向对象思想和三大特性的理解
- Java经典封装JDBC模板(充分体现面向对象思想)
- Java经典封装JDBC模板(充分体现面向对象思想)(转)