面向对象基础复习
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; } }