Java面向对象——封装
- 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏
- 封装是将自然界中具有相似特征和行为的事务抽象成一个类,并尽可能的私有化属性的过程,对不可信的进行信息隐藏
类
- 类是自然界中描述具有相同 特征 (属性)和 行为 (方法)的事务的统称
- 类是抽象的
对象
- 万物皆为对象
- 对象是具体的
类和对象的关系
- 类是 对象的 模板,模板的作用就是构建对象的
- 对象是类的具体实现,一个类,可以有无数个对象
类的组成——类中的方法
-
()是方法的标识
*构造方法 * 特点: * 方法名和类名 完全一致 * 方法名不能设置返回值类型(void 都不能写) * 构造方法通过 new 关键字来调用 * 如果类中没有设置构造方法,JVM(Java虚拟机)会自动提供一个无参构造方法 * 如果类中设置的有构造方法,那么JVM(Java虚拟机)不再提供任何额外的无参构造方法 * * 作用: * 创建对象 * 有参构造可以对 属性 进行赋值
方法的重载:
在一个类中,具有多个相同的方法名,这种现象称为方法的重载
- 方法的重载 必须同时满足以下两个条件:
- 1.方法名 必须相同
- 2.参数列表 不同 (参数个数不同 或者 参数类型不同)
类的组成——this的调用
- 当局部变量(定义在方法中的变量)和成员变量(类中的变量 )的名字冲突时,优先使用局部不变量的名字,成员变量的名字会被覆盖,如果此时需要使用成员变量(属性),那么通过
this
关键字进行访问- this 在Java的类中,代表该类的对象 (调用该属性或者方法的对象)
- this 通过’ . ’ 可以调用属性,也可以调用成员方法
- this 还可以调用 构造方法 (在构造方法中,调用构造方法)
- this() : 调用无参的构造方法
- this 在调用构造方法的时候,必须出现在构造方法中,作为第一个语句
类的组成——代码块
- 代码块一般用来做数据的初始化工作,它会在调用构造方法前执行
- 属性的声明在代码块之前,先对属性进行执行,属性在代码块之后,属性的声明会被调用在代码块之前
- 在代码块中无法使用有可能未被赋值的属性
类的组成——修饰符
权限修饰符
public (公有的)
protected (受保护的)
friendly(default)(缺省的)
private(私有的)
private
私有属性问题
- 私有属性想要使用,1.设置一个构造方法进行赋值(只能设置值,不能访问)2.设置防范(set/get 方法设置/获取值)
- 如果设置有参构造,同时推荐设置一个无参构造,没有无参构造,会在创建对象的时候需要直接设置属性
//输出 person 对象
System.out.println(person);
//结果:com.qikux.day0726.Person@404b9385
field
属性
/**
* 姓名
*/
private String name ;
property
属性
- 指的是 setter / getter 方法
-去掉 get 或者 set ,然后首字母变小写,这样的属性成为 property 属性
/**
* 添加私有属性 name 的方法
*/
public void setName(String name){
//当前位置name是property属性
this.name = name ;
}
重写 equals
方法
public double getMoney(){
return this.money ;
}
public String toString(){
return "姓名:"+name+"\n年龄:"+age+"\n性别:"+sex+"\n身份证号:"+id_number+