类与方法
概述
在 Java 中,类是对象的蓝图或模板。类定义了对象的属性(字段)和行为(方法)。对象是类的实例,具有类所定义的属性和方法。Java 是一种面向对象的编程语言,支持封装、继承和多态等特性。
类的种类
普通类:
- 普通类是最常见的类类型,定义了对象的属性和方法。
- 示例:java
public class Dog { String name; int age; public void bark() { System.out.println(name + " says Woof!"); } }
抽象类:
- 抽象类是不能被实例化的类,通常包含一个或多个抽象方法(没有实现的方法)。
- 抽象类用于提供子类的共同接口。
- 示例:java
public abstract class Animal { abstract void makeSound(); // 抽象方法 public void eat() { System.out.println("This animal eats food."); } } public class Cat extends Animal { @Override void makeSound() { System.out.println("Meow"); } }
接口:
- 接口是一种特殊的引用类型,定义了一组方法,但不提供实现。
- 类可以实现一个或多个接口,必须实现接口中的所有方法。
- 示例:java
public interface Flyable { void fly(); } public class Bird implements Flyable { @Override public void fly() { System.out.println("The bird is flying."); } }
内部类:
- 内部类是定义在另一个类内部的类,可以访问外部类的成员。
- 示例:java
public class OuterClass { private String outerField = "Outer field"; public class InnerClass { public void display() { System.out.println("Accessing: " + outerField); } } }
方法
方法是类中定义的行为,包含一组执行特定任务的语句。方法可以有参数和返回值。
方法的组成部分
- 方法名:用于标识方法的名称。
- 返回类型:方法返回值的类型,如果没有返回值,则使用
void
。 - 参数列表:方法接受的参数,可以为空。
- 方法体:包含方法执行的代码。
访问修饰符
Java 中的方法可以使用访问修饰符来控制其可见性。常见的访问修饰符包括:
- public:公共访问,任何其他类都可以访问。
- private:私有访问,只有定义该方法的类可以访问。
- protected:受保护访问,只有同一包中的类和子类可以访问。
- 默认(无修饰符):包访问,只有同一包中的类可以访问。
示例代码
java
public class Calculator {
// 加法方法
public int add(int a, int b) {
return a + b;
}
// 减法方法
public int subtract(int a, int b) {
return a - b;
}
}
静态与非静态
静态(Static)
- 定义:静态成员(字段和方法)属于类本身,而不是类的实例。静态成员在内存中只有一份,所有实例共享。
- 访问:可以通过类名直接访问静态成员,而不需要创建类的实例。
- 使用场景:适用于不依赖于实例状态的属性和方法,例如常量、工具方法等。
示例代码
java
public class MathUtils {
// 静态常量
public static final double PI = 3.14159;
// 静态方法
public static int add(int a, int b) {
return a + b;
}
}
public class StaticExample {
public static void main(String[] args) {
// 访问静态常量
System.out.println("圆周率: " + MathUtils.PI);
// 访问静态方法
int sum = MathUtils.add(5, 3);
System.out.println("和: " + sum);
}
}
非静态(Instance)
- 定义:非静态成员(字段和方法)属于类的实例。每个实例都有自己的非静态成员。
- 访问:必须通过类的实例来访问非静态成员。
- 使用场景:适用于需要依赖于实例状态的属性和方法,例如对象的特定属性和行为。
示例代码
java
public class Person {
// 非静态字段
private String name;
// 构造方法
public Person(String name) {
this.name = name;
}
// 非静态方法
public void introduce() {
System.out.println("你好,我是 " + name);
}
}
public class InstanceExample {
public static void main(String[] args) {
// 创建 Person 类的实例
Person person1 = new Person("Alice");
Person person2 = new Person("Bob");
// 访问非静态方法
person1.introduce(); // 输出: 你好,我是 Alice
person2.introduce(); // 输出: 你好,我是 Bob
}
}
个人感悟
理解类与对象是掌握 Java 编程的基础。通过合理设计类和对象,可以提高代码的可读性和可维护性。面向对象的特性如封装、继承和多态使得 Java 成为一种强大的编程语言,适用于各种应用开发。