⭐⭐⭐Java基础篇目录⭐⭐⭐
🍁 第一章 Java开发环境搭建
🍁 第二章 标识符与关键字
🍁 第三章 变量
🍁 第四章 数据类型
🍁 第五章 运算符
🍁 第六章 控制语句
🍁 第七章 方法
🍁 第八章 认识面向对象
🍁 第九章 对象的创建和使用
🍁 第十章 封装
🍁 第十一章 this和static
🍁 第十二章 继承
🍁 第十三章 方法的覆盖和多态
🍁 第十四章 super
1、封装
面向对象的三大特征:封装、继承、多态
有了封装,才有继承,有了继承,才有多态。
封装的作用:
- 保证内部结构的安全:
类体中安全级别较高的数据封装起来,外部人员不能随意访问。 - 屏蔽复杂,暴露简单:
对代码的调用者来说,不用关心代码内部的复杂实现
2、如何进行封装
封装的步骤:
- 属性私有化–private
- 对外提供简单的操作入口–set和get
被private关键字修饰的属性,出了本类就不能再被访问,有些因噎废食了。—–我们再开放set和get方法,外部程序只能通过它两来完成属性的访问。
3、实例方法
不被static关键字修饰的方法,称实例方法,是对象级别的方法。
对象又称实例,实例相关的有实例变量、实例方法。实例相关的都要先new对象,然后用引用 . 实例方法/变量去调用
,相对的,被static修饰的静态方法的调用则是通过类名. 的方式去调用。
4、实例方法导致的空指针异常
引用为空的时候,再用引用. 的方式访问实例变量或者实例方法,就会出现空指针异常。
//关于类=属性+方法的再次理解
class User{
int id;
public void doSome(){
}
}
//实例方法,模仿对象的行为动作
5、set和get方法
属性私有化后,对外提供方法set和get,用于操作对象的属性,既然是操作对象的属性,自然是挂钩对象,即set和get都是实例方法。
get方法的定义规范:
public 返回值类型 get属性名且首字母大写(无参){
return xxx;
}
set方法的定义规范:
public void set属性名且首字母大写(有一个参数){
xx属性=参数;
}
举例:
实际开发中,set和get方法、构造方法等都不用手写,IDEA中直接Alt+Insert直接选择就好:
//简单举例
public class Person {
private int age;
//Getter
public int getAge(){
return age;
}
//Getter,这里没用this,后续this再学
public void setAge(int newAge){
age=newAge;
}
public class PersonTest {
public static void main(String[] args) {
Person p = new Person();
//age被私有,不同类中只能用getAge获取
System.out.println(p.getAge());
p.setAge(100);
System.out.println(p.getAge());
}
}
这里对setAge()方法的定义有bug,set一个-100给age也可以,对set方法,可修改为:
public void setAge(int age){
if(age<0 || age>150){
System.out.println("输入不合法");
return;
}
//能执行到这儿,一定合规,直接赋值就好,不用再else
this.age=age;
}
😉
总结面向对象的特征—封装的两个步骤:
- 属性私有化
- 一个属性对外提供set和get方法,外部程序只能通过set方法来修改对象属性。此外可在两个方法中设置If关卡来保证数据的合法性。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/146123.html