面向对象基础复习
1.类(设计图):是对象共同特征的描述
对象:是真实存在的具体实例
结论:在java中,必须先设计类,才能创建对象并使用
类中成分
类中可以定义的5大成分:成员变量、构造器、成员方法、代码块、内部类
修饰符 class 类名{
//1.成员变量Field:描述类或者对象的属性信息,如:姓名、年龄
//2.成员方法Method:描述类或者对象的行为的,如:唱歌、吃饭、买票
//3.构造器Constructor:初始化一个类的对象返回
//4.内部类
//5.代码块
}
类成分实例
public class Student{
//1.成员变量
private String name;
//2.构造器
public Student(){
}
//3.方法
public void run(){
}
}
定义类的注意事项:
-
类名建议首字母大写,满足驼峰模式
-
建议一个java文件只定义一个类
-
一个java文件中可以定义多个类,只能有一个类由public修饰,public修饰的类名必须是java代码的文件名称
public class Student {
}
class Animal{
}
class Birds{
}
2.构造器:初始化类的对象,并返回对象的地址
构造器格式
修饰符 类名(形参列表){
}
初始化对象格式
类名 对象变量 = new 构造器;
构造器的分类和作用
无参构造器:初始化对象的数据为默认值;
有参构造器:在初始化对象的时候,同时为对象的数据赋值;
public class Student {
private String name;
private int age;
private char sex;
public Student() {
//无参构造器
}
public Student(String name, int age, char sex) {//有参构造器
this.name = name;
this.age = age;
this.sex = sex;
}
}
构造器注意事项:
-
任何类定义出来,默认自带无参构造器,写不写都有。
-
一旦定义了有参数构造器,无参数构造器就没有了,就需要自己手写无参构造器
3.this关键字是什么
-
出现在成员方法、构造器中,代表当前对象的地址。
-
用于指定访问当前对象的成员变量、成员方法
this出现在有参数构造器中的作用
public class car{
String name;
double price;
public Car(String n, double b){
name = n;
price = b;
}
}
//这种不太好
![image-20220419154555395]()
public class car{
String name;
double price;
public Car(String name, double price){
this.name = name;
this.price = price;
}
}
this出现在成员方法中的作用
public class car{
String name;
double price;
public void goWith(String name){
System.out.println(name + "正在和" + name + "一起比赛")
}
}
public class car{
String name;
double price;
public void goWith(String name){
System.out.println(this.name + "正在和" + this.name + "一起比赛")
}
}
this能解决什么问题?
可以用于指定访问的是当前对象的成员变量
4.面向对象的三大特征:封装、继承、多态
封装:解决属性和方法属于哪个对象的问题;
封装步骤:通常将成员变量私有、提供方法进行暴露
封装作用:提高业务功能设计的安全性,提高开发效率
如何进行更好的封装?
一般会把成员变量使用private隐藏起来,对外就不能直接访问了
提供public修饰的getter和setter方法暴露其取值和赋值
5.特征的含义
特征是指已经成为java设计代码的基本特点,即使毫无意义,通常也要需要满足这样的设计要求来编写程序;
6.标准JavaBean
也可以理解成实体类,其对象可以用于在程序中封装数据
Java中书写标准JavaBean必须满足如下要求:
-
成员变量使用private修饰
-
提供每一个成员变量对应的setXxx()/ getXxx();
-
必须提供一个无参构造器
public class Student {
private String name;
private int age;
private char sex;
public Student() {
//无参构造器
System.out.println("无参构造器执行");
}
public Student(String name, int age, char sex) {//有参构造器
System.out.println("有参构造器执行");
this.name = name;
this.age = age;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
}