前言
本小节讲解了java语言基础语法中有关类的知识,其中的图来自慕课网学习截图。
同时,制作了一个阶段性的小程序——“答答租车”小程序。
一、有关于类的核心知识点
- 类是对象的类型,是具有相同属性和方法的一组对象的集合
- 属性的概念:对象具有的各种特征,每个对象的每个属性都拥有特定值
- 方法的概念:对象执行的操作
- 类与对象的关系:类是抽象的概念,而对象是一个具体的实体,对象是类的实例化和具体化。
- 所有Java程序都以类(class)为组织单元
- 定义一个类的步骤:
· 定义类名
· 编写类的属性
· 编写类的方法
例:
public class 类名{
// 定义属性部分(成员变量)
属性1的类型 属性1;
属性2的类型 属性2;
...
属性n的类型 属性n;
// 定义方法部分
方法1;
方法2;
...
方法m;
}
- 使用Java中的对象的步骤:
· 创建对象:类名 对象名 = new 类名();
· 使用对象:引用对象的属性:对象名.属性;
引用对象的方法:对象名.方法名();
- 成员变量与局部变量
· 成员变量:在类中定义,用来描述对象的属性。成员变量的作用域在整个类内部都是可见的。成员变量的默认值为0。
· 局部变量:在类的方法中定义,在方法中临时保存数据,用来做一些数据的处理等。局部变量的作用域仅限于定义它的方法。Java并不会给局部变量赋予初始值。
· 在同一个方法中,不允许有同名局部变量;在不同的方法中,可以有同名局部变量
· 两类变量同名时,局部变量具有更高的优先级,即‘就近原则’。 - Java语言中的构造方法
· 使用new + 构造方法
创建一个新的对象
· 构造方法是定义在Java类中的一个用来初始化对象的成员变量的方法;构造方法与类同名且没有返回值。
· 当没有指定构造方法时,系统会自动添加无参的构造方法
· 当有指定构造方法,无论是有参、无参的构造方法,都不会自动添加无参的构造方法。
· 构造方法的重载:方法名相同,但参数不同的多个方法,调用时会自动根据不同的参数选择相应的方法。
· 构造方法不但可以给对象的属性赋值,还可以保证给对象的属性赋一个合理的值
· 语法格式:
public 构造方法名(){
// 初始化代码
}
- Java语言中的静态成员(类成员):被static修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。静态成员可以使用类名直接访问,也可以使用对象名进行访问。static可以修饰变量、方法和代码块。
- Java中可以通过初始化块进行数据赋值。如:
public class HelloWorld{
String name; // 定义一个成员变量
// 通过初始化块为成员变量赋值
{
name = “你好”;
}
}
在类的声明中,可以包含多个初始化块,当创建类的实例时,就会依次执行这些代码块。如果使用static修饰初始化块,就称为静态初始化块。
二、面向对象的三大特性之封装
- 封装概念:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。即:隐藏属性,通过方法来得到属性的值。
- 封装好处:只能通过规定的方法访问数据;隐藏类的实例细节,方便修改和实现。
- 封装的实现步骤:
· 修改属性的可见性
· 创建getter/setter方法
· 在getter/setter方法中加入属性控制语句,对属性值的合法性进行判断 - Java中的包
· 包的作用:管理Java文件,解决同名文件冲突的问题
· 定义包:package 包名
· 包的使用:
1)可以通过import关键字,在某个文件使用其它文件中的类,如:import java.util.Scanner;
2)在Java中,包的命名规范是全小写字母拼写。 - Java中的访问修饰符:可以修饰属性和方法的访问范围
- Java中的this关键字
· this关键字代表当前对象
1)this.属性 操作当前对象的属性
2)this.方法 调用当前对象的方法
· 封装对象的属性的时候,经常会使用this关键字,例如在使用getter/setter方法的时候,常常会碰到‘参数名’与‘属性名’相同的情况,这时我们可以通过在属性名之前加上this关键字来加以区分。 - Java中的内部类
· 概念