【day07】回顾
在深入封装的概念之前,让我们回顾一下【day07】中的关键内容:
-
面向对象编程:Java的核心编程思想,通过对象实现功能的封装和复用。
- 使用场景:在一个类中访问另一个类的成员(成员变量、成员方法)。
- 使用方法:通过
new
关键字创建对象,然后通过点操作符(.
)调用对象的成员。
-
类和对象:
- 类:实体类的抽象表示,包含属性(成员变量)和行为(成员方法)。
- 对象:类的实例化,用于访问类中的成员。
- 导包:同一包下的类不需要导包,不同包下的类需要导包。
- 创建对象:使用
new
关键字创建对象。 - 调用成员:通过对象名调用类的成员。
-
匿名对象:没有等号左边的代码,只有
new
操作符创建的对象。- 注意:匿名对象不适用于需要赋值的场景。
-
成员变量和局部变量的区别:
- 定义位置、初始化值、作用范围、内存位置、生命周期均有所不同。
模块八重点
本模块我们将学习封装的概念和实践,包括:
- 使用
private
关键字修饰成员,并了解其访问特点。 - 使用
set
方法为属性赋值,使用get
方法获取属性值。 - 使用
this
关键字区分重名的成员变量和局部变量。 - 使用空参构造创建对象,并了解其作用。
- 使用有参构造创建对象,并为属性赋值。
- 快速生成一个标准的JavaBean类。
第一章:封装
1. 封装的介绍及使用
封装是面向对象编程的三大特征之一,它将对象的内部细节隐藏起来,只对外提供公共的接口,从而提高了系统的可扩展性、可维护性和安全性。
示例代码
public class Person {
private String name;
private int age;
public void setName(String xingMing) {
name = xingMing;
}
public String getName() {
return name;
}
public void setAge(int nianLing) {
if (nianLing < 0 || nianLing > 150) {
System.out.println("岁数不合理");
} else {
age = nianLing;
}
}
public int getAge() {
return age;
}
}
public class Test01 {
public static void main(String[] args) {
Person person = new Person();
person.setName("涛哥");
person.setAge(18);
System.out.println(person.getName() + "..." + person.getAge());
}
}
2. this
的介绍
this
关键字用于区分重名的成员变量和局部变量,代表当前对象。
示例代码
public class Person {
String name;
public void speak(String name) {
System.out.println(this.name + "您好,我是" + name);
}
}
public class Test01 {
public static void main(String[] args) {
Person person = new Person();
System.out.println(person+"=========");
person.name = "沉香";
person.speak("刘彦昌");
System.out.println("==========");
Person person2 = new Person();
System.out.println(person2+"+++++");
person2.name = "奥特曼";
person2.speak("奥特曼之父");
}
}
public class Person {
private String name;
private int age;
//为name提供get/set方法
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
//为age提供get/set方法
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
}
3. 构造方法
构造方法是用于初始化对象的特殊方法,其方法名与类名相同,没有返回值。
3.1 空参构造
每个类默认都有一个空参构造,如果不手动定义,JVM会自动提供一个。
3.2 有参构造
有参构造用于在创建对象时为属性赋值。
示例代码
public class Person {
private String name;
private int age;
public Person() {
System.out.println("我是无参构造");
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// ... get/set 方法
}
public class Test01 {
public static void main(String[] args) {
Person person = new Person();
Person person2 = new Person("涛哥", 18);
System.out.println(person2.getName() + "..." + person2.getAge());
}
}
4. 标准JavaBean
JavaBean是一种遵循特定规范的Java类,它通常包含私有的成员变量、无参和有参的构造方法以及set
和get
方法。
示例代码
public class Student {
private int sid;
private String sname;
public Student() {
}
public Student(int sid, String sname) {
this.sid = sid;
this.sname = sname;
}
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
}
public class Test01 {
public static void main(String[] args) {
Student s1 = new Student();
s1.setSid(1);
s1.setSname("涛哥");
System.out.println(s1.getSid() + "..." + s1.getSname());
}
}
通过本模块的学习,您将能够熟练掌握封装的概念和实践,为后续的面向对象编程打下坚实的基础。