4. 面向对象程序设计
4. 面向对象程序设计
文章目录
- 4. 面向对象程序设计
- 4.1 类的定义
- 4.2 this关键字
- 4.3 static关键字
- 4.4 标准类制作
- 4.5 访问权限修饰符
- 4.6 封装
4.1 类的定义
-
基本格式
class Student { // 成员变量 int id; String name; int age; // 成员方法 void goStudy() { System.out.println(name + "go to study"); } }
4.2 this关键字
-
this修饰的变量用于指代成员变量,其主要作用是(区分局部变量和成员变量的重名问题)
class Student { //成员变量 private int age; //提供get/set方法 public void setAge(int age) { this.age = age; } public int getAge() { return age; } //成员方法 public void show() { System.out.println("age = " + age); } }
4.3 static关键字
- 不需要创建对象可以直接调用其类方法
- 访问的是静态变量,不能直接访问实例方法,需要创建对象。
static class CircleArea {
static double getArea(double r) {
return Math.PI * r * r;
}
}
public static void main(String[] args) {
double circleArea = CircleArea.getArea(3.5);
System.out.println(circleArea);
}
4.4 标准类制作
-
类名需要见名知意
-
成员变量使用private修饰
-
提供至少两个构造方法
无参构造方法
带全部参数的构造方法
-
get和set方法
-
提供每一个成员变量对应的setXxx()和getXxx()
class Student {
//成员变量
private String name;
private int age;
//构造方法
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
//成员方法
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void show() {
System.out.println("name = " + name + "," + "age = " + age);
}
}
/*
创建对象并为其成员变量赋值的两种方式
1:无参构造方法创建对象后使用setXxx()赋值
2:使用带参构造方法直接创建带有属性值的对象
*/
public class StudentDemo {
public static void main(String[] args) {
//无参构造方法创建对象后使用setXxx()赋值
Student s1 = new Student();
s1.setName("DZJ");
s1.setAge(18);
s1.show();
//使用带参构造方法直接创建带有属性值的对象
Student s2 = new Student("DZJ",18);
s2.show();
}
}
4.5 访问权限修饰符
- private
- protect
- public
- package
4.6 封装
-
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问
-
成员变量private,提供对应的getXxx()/setXxx()方法
class Student { //成员变量 private int Age; //提供get/set方法 public void setAge(int age) { Age = age; } public int getAge() { return Age; } //成员方法 public void show() { System.out.println("Age = " + getAge()); } }