一、面向对象
- 面向对象编程思想:将程序模块化
- 什么是面向对象
面向对象编程思想诞生以前,程序开发采用的是面向过程的结构化编程方式,是一种面向功能划分的软件结构。
最小粒度可以细化到方法这一层。
面向过程注重的是每一个步骤,面向对象的关注点在于整个事件的模块化结构。
二、 类和对象
-
类和对象的关系
- 每个对象都有特定的特征:属性 、方法
属性指的是对象的静态特征
方法是用来描述对象的动态特征- 对象是用来描述客观存在的一个实体,这个实体是由一组属性和方法构成
- 类是产生对象的模版,所有的对象都是通过类来创建的。
类是对象的抽象化描述,这些对象具有相同的特征和动作(属性和方法)
对象是类的具体实例。
- Java程序是以类为组织单元构成的,程序运行时的主体是通过类创建的具体对象。
三、定义类
public class 类名{
// 定义属性 命名要符合驼峰命名法
public 数据类型 属性名;
// 定义方法 方法名要符合驼峰命名法
public 返回值类型 方法名(参数列表:数据类型 参数名){
// 方法体
}
}
- Java 关于返回值的定义分为两类:有返回值和没有返回值
有返回值的方法需要在方法定义时指定返回值的数据类型,并在方法中用return返回给外部调用
一个方法无返回值,返回值类型定义为void
- 参数列表是值外部在调用该方法时需要传入到方法内部进行运算的数据
四、构造函数(构造方法、构造器)
- 构造函数是一种特殊的方法,普通方法是用来描述某个动作。构造方法是用来创建对象的
- 方法名必须与类名一致
- 不需要定义返回值类型
public Test() {
}
- 有参构造:带参数的构造函数
public Test(int num) {
}
- 无参构造:没有参数的构造函数
- 任何类都默认自带一个无参构造
- 如果手动在类中定义一个有参构造,则会覆盖默认的无参构造
public class Student {
public int id;
public String name;
public Student(){
System.out.println("调用了无参构造");
}
public Student(int id,String name){
this.id = id;
this.name = name;
}
public void run(){
System.out.println("学生跑步");
}
}
public static void main(String[] args) {
// 先创建对象
Student student = new Student();
// 再赋值
student.id = 1;
student.name = "张三";
// 边创建边赋值
Student student2 = new Student(1,"张三");
}
五、this关键字
- this表示当前类的实例化对象,通过this可以调用当前类的属性和方法,比如在有参构造中可以用this将外部传入的值赋给当前类的实例化对象
- this除了可以在类中访问属性,也可以在类中调用方法(构造方法,普通方法)
- this 调用构造函数语法:
this(参数列表),不能在普通方法中使用this调用构造函数 - this调用普通函数语法:
this.方法名(参数列表),可以在构造函数中使用也可以在普通方法中使用