Java类
文章目录
- 1. 类的定义
- 2. 类的组成
- (1) 属性(Fields)
- (2) 方法(Methods)
- `this` 的作用:
- 注意事项:
- **(3) 构造方法(Constructor)**
- **3. 对象的创建**
- **4. 访问修饰符**
- **5. 类的特性**
- **(1) 封装(Encapsulation)**
- **(2) 继承(Inheritance)**
- **(3) 多态(Polymorphism)**
- **6. 类的高级特性**
- **(1) 静态成员(Static Members)**
- **(2) 内部类(Inner Class)**
- **(3) 抽象类与接口**
- **总结**
在 Java 编程中,类(class
)是面向对象编程的核心概念。类是用于创建对象的模板,它定义了对象的属性(fields
)和行为(methods
)。以下是关于 Java 类的详细介绍:
1. 类的定义
在 Java 中,类使用关键字 class
定义。其基本结构如下:
public class ClassName {
// 属性(字段/成员变量)
数据类型 属性名;
// 构造方法
public ClassName() {
// 初始化代码
}
// 方法
返回类型 方法名(参数列表) {
// 方法体
}
}
2. 类的组成
一个类通常由以下几个部分组成:
(1) 属性(Fields)
属性是类中用于存储数据的变量。它们也被称为成员变量。
- 属性一般具有访问修饰符(
public
,private
,protected
),用于控制访问权限。 - 可以赋予默认值。
public class Person {
private String name; // 姓名
private int age; // 年龄
}
(2) 方法(Methods)
方法定义了类的行为,表示对象可以执行的操作。
- 方法通常由访问修饰符、返回类型、方法名和参数列表组成。
- 关键字
void
表示该方法不返回任何值。
public class Person {
private String name;
private int age;
public void setName(String name) {
this.name = name; // 设置姓名
}
public String getName() {
return name; // 获取姓名
}
}
this指针
Java 中有一个 this
指针(或者说引用),它是指向当前对象的引用。
this
的作用:
-
指向当前对象:
this
指针引用当前正在执行方法的对象实例,通常用于在对象的方法中访问当前对象的成员变量和方法。 -
区分成员变量和局部变量:当局部变量(比如方法参数)与类的成员变量同名时,
this
用于区分它们。比如:public class Person { private String name; public Person(String name) { this.name = name; // this.name 指的是类的成员变量,name 是方法的参数 } }
在上面的代码中,
this.name
表示当前对象的成员变量,而name
是构造方法的参数。 -
在构造函数中调用其他构造函数:Java 中,
this()
可以用于在一个构造函数中调用当前类的另一个构造函数。这样可以避免重复代码:public class Person { private String name; private int age; public Person(String name) { this(name, 0); // 调用带两个参数的构造函数 } public Person(String name, int age) { this.name = name; this.age = age; } }
在上面的代码中,
this(name, 0)
调用了带有两个参数的构造函数。
注意事项:
this
是一个隐式引用变量,不能用于静态方法中,因为静态方法没有实例对象。this
是指向当前对象的引用,它通常用于实例方法中,但也可以作为参数传递给其他方法或构造函数。
总结:this
是 Java 中指向当前对象的一个特殊引用,它在实例方法中非常常见,用于区分局部变量和成员变量、访问其他构造函数等。
(3) 构造方法(Constructor)
构造方法用于初始化对象。构造方法的名字必须与类名相同。
- 默认构造方法没有参数。
- 可以定义带参数的构造方法用于初始化对象时赋值。
public class Person {
private String name;
private int age;
// 无参构造方法
public Person() {
this.name = "Unknown";
this.age = 0;
}
// 带参构造方法
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
3. 对象的创建
类定义完成后,可以通过实例化来创建对象,使用关键字 new
调用构造方法。
public class Main {
public static void main(String[] args) {
// 创建对象
Person person = new Person("Alice", 25);
// 调用方法
person.setName("Bob");
System.out.println(person.getName()); // 输出: Bob
}
}
4. 访问修饰符
Java 提供了四种访问修饰符,用于控制类、方法或属性的访问范围:
修饰符 | 当前类 | 同包内 | 子类 | 其他类 |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
default | √ | √ | × | × |
private | √ | × | × | × |
5. 类的特性
Java 类支持以下核心的面向对象特性:
(1) 封装(Encapsulation)
通过将属性设置为 private
并提供 getter
和 setter
方法,可以保护数据。
public class Person {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
(2) 继承(Inheritance)
Java 支持通过 extends
关键字实现继承,一个类可以继承另一个类的属性和方法。
public class Employee extends Person {
private int employeeId;
public int getEmployeeId() {
return employeeId;
}
public void setEmployeeId(int employeeId) {
this.employeeId = employeeId;
}
}
(3) 多态(Polymorphism)
多态允许使用父类的引用指向子类对象,并通过动态绑定调用子类方法。
public class Main {
public static void main(String[] args) {
Person person = new Employee(); // 父类引用
person.setName("Alice");
System.out.println(person.getName());
}
}
6. 类的高级特性
(1) 静态成员(Static Members)
使用 static
修饰符可以定义类级别的属性和方法。
public class MathUtil {
public static int add(int a, int b) {
return a + b;
}
}
调用静态方法时,无需实例化对象:
int sum = MathUtil.add(5, 10);
(2) 内部类(Inner Class)
在一个类中定义另一个类。
public class OuterClass {
class InnerClass {
public void display() {
System.out.println("This is an inner class.");
}
}
}
(3) 抽象类与接口
- 抽象类(
abstract
):不能实例化,必须被子类继承。 - 接口(
interface
):定义方法的规范,供类实现。
public abstract class Shape {
abstract void draw();
}
public interface Drawable {
void draw();
}
总结
Java 类是面向对象编程的基础,主要用于定义对象的属性和行为。通过封装、继承和多态,Java 类为开发者提供了强大的工具来创建模块化、可维护的程序。学习和熟练使用类是掌握 Java 编程的关键一步!