面向对象基础
一个小问题
因为在最开始学习Java并使用IDEA时首先了解到的是分成四个部分,项目project,模块module,包package,类class。然后在这里说明一点,如果还没有接触到修饰符,就是public等时,如果将JavaBean类和测试类放在不同的包中,也没有使用public对成员变量进行修饰的话,那就不能正常运行,会报错,只有放在同一个包下才不会报错。
封装
封装就是对对象的属性和方法进行正确的设计。对象代表什么,就应该封装对应的数据并且提供与数据对应的行为。
另外,为了保证数据的安全性,使用private对成员变量进行修饰,private修饰的成员变量只能在本类中进行调用。所以需要对每个成员变量提供set方法和get方法。
构造方法
构造方法的作用可以理解为对成员变量进行初始化的。构造方法不需要进行手动调用,是JVM在创建新对象(new)的时候自动调用的。构造方法没有返回值(不写return关键字,因此也就没有返回数据类型,因此其语法中也不会出现void关键字),构造方法的方法名和类名完全一致。
- 无参构造方法
- 有参构造方法
需要注意的是: - 如果不提供任何的构造方法,JVM会自动提供一个无参的构造方法。
- 在自己定义构造方法时,同时提供无参构造方法和有参构造方法(构造方法的重载)
this关键字
this关键字用于区分成员变量和局部变量。
成员变量定义在类中的,是类的属性,局部变量定义在类中的方法里。
this.name此时的name便是成员变量。
关于封装的实例
public class Rectangle {
private int height;
private int width;
//构造方法
public Rectangle(){
}
public Rectangle(int height,int width){
this.height=height;
this.width=width;
}
//为每一个成员变量提供set方法和get方法
public void setHeight(int height) {
this.height = height;
}
public void setWidth(int width) {
this.width = width;
}
public int getHeight() {
return height;
}
public int getWidth() {
return width;
}
}