JavaSE面向对象-封装
来源:互联网 发布:淘宝模特拍摄大牌风 编辑:程序博客网 时间:2024/03/29 23:34
一.面向对象的三大特性
说起Java的面向对象,大家想到的都应该是面向对象的三大特征,封装,继承,多态,这里就总结一下面向对象的封装一些知识.
1.封装的概念:
面向对象是一个抽象的,个人认为是对类的一个提升,提取和抽象化,而一些东西你提取了之后,又不想让别人随意的更改,那么你就需要对这个信息就行隐藏,那么这个时候就需要封装。
封装的好处:
1.提高安全性,把不必要的信息隐藏
2.加强对成员属性的控制,提高易用性
3.代码更加的简洁,提高代码的复用性和可读性
因为有封装问题,所以会有一些权限修饰符,在Java中现在就我们涉及的权限修饰符不是很多,有以下几个:
public --->公开的,权限最大的修饰符。protected ---->受保护的,子类和本类,如果是在另外一个包中的子类,也可以使用protected修饰的父类内容default ---->默认权限,包中有效private ---->私有化权限,只能在本类使用
上面几个权限修饰符,修饰类,方法和属性。
get和set方法
在封装的时候,在封装一些信息的时候,对属性进行了private修饰,所以不能够直接去访问,这时候我们就需要提供一个接口来对外提供一个入口,就会用到get和set方法:
set//获得值比如说:private int age;//getpublic void set age(){ this.age = age;//this关键字指向调用对象,这里默认是隐藏的}//setpublic int gerAge(){//因为有返回值,所以要有返回值类型 retun age;}
这就是get和set的用法,暂时只遇到这一个用法,如果有其他的就以后进行补充。this关键字指的就是当前调用这个实例方法的对象,在本类调用对象的时候,可以不用写this
构造方法/重载
1.构造方法在类中作用就是对对象进行一个初始化
2.构造方法也可以用修饰符修饰
3.构造方法方法名和类名字相同
重载:使用相同的方法名实现不同的功能
1.重载只能在本类中
2.方法名必须相同
3.参数列表不相同
class Demo{ priavte int age; private String name; private String name; //定义一个构造方法 public Person(){ //空参构造方法 } public Person(String name,int age){ //有参构造器 public Person(String name,String sex,int age){ //构造器重载 }}
这里就把重载和构造器一并写了,构造器主要作用就是初始化对象,如果不写构造器,那么系统会自己默认一个空参构造方法。构造方法的传值是在创建对象的时候进行传值。一个类中可以有多个构造器,所有的构造器必须与类同名。
重载就是使用同一个方法名,实现不同的功能,当你只有一个值的时候对应传给一个值的方法,两个值的时候传给两个参数相符的方法,以此类推。
final
在封装的过程中,有final关键字,当被final关键字修饰的时候,一个变量就会转换为一个常量,就变成了不可更改的值
static
在类中用static修饰的变量,就成为了类变量,在整个类中有效
this
this 使用举例
使用 this 调用成员变量,解决成员变量和局部变量同名冲突。
public void setName(String name){
this.name =name; // 成员变量和局部变量同名,必须使用 this
class Demo1{ static int age = 20;//类变量 final String name = "张三";//此时张三这个值就不能在更改public void setName(String name){this.name =name; // 成员变量和局部变量同名,必须使用 this}
总结:因为学了一段时间再来写的这个博客,就当是对封装的一次回顾,总结了一些自己能想起的知识点,也想起一些细节没有注意到的地方,对于封装,使用基本没问题,就是有时候想不到什么时候用封装,细节方面有欠缺
- JavaSE面向对象-封装
- javaSE-面向对象-封装特性
- JavaSE面向对象之封装
- JavaSE面向对象封装笔记
- JavaSE第九讲:面向对象之封装
- JavaSE阶段1_面向对象封装
- JavaSE (九)面向对象之封装
- JavaSE第十讲:面向对象之封装 续
- JavaSE第十一讲:面向对象之封装 续二
- JavaSE入门学习13:Java面向对象之封装
- JavaSe ——2、面向对象(继承、封装、多态)
- javase面向对象三大特性之封装
- JavaSE (十)面向对象之封装续......
- JavaSE (十一)面向对象之封装续2......
- JavaSE review -- 面向对象、封装、继承、多态、抽象
- JavaSE 拾遗(4)——JavaSE 面向对象程序设计语言基础(4)...封装
- javaSE-面向对象-简介
- javaSE-面向对象-继承
- java中if暗含的性能优化玄机
- Android Studio更新后出现Error:Cause: failed to find target with hash string 'android-23' 错误
- 【51nod】1008 N的阶乘 mod P
- VS2013编译时出现无法打开包括文件: “SDKDDKVer.h”: No such file or director
- C语言——strlen(a)的值为多少
- JavaSE面向对象-封装
- 修饰符的概述和总结
- linux 查看版本信息
- 目标检测(二) win10下目标检测GPU加速环境配置
- JavasSE面向对象-继承
- 数据库性能优化之冗余字段的作用
- PHP--处理页面的判断
- 出现交换文件怎么办
- 64位Ubuntu14.04下配置PBC环境