Java是一种面向对象的编程语言,使用类和对象是Java编程的核心。在Java中,类定义了对象的共同特征,对象则是具体的实例,拥有类所定义的属性和方法。
类和对象的基本概念
类的定义和使用
定义Java类需要使用关键字class,下面是一个简单的示例:
public class Person {
// 定义类的属性(成员变量)
private String name;
private int age;
// 定义构造方法
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// 定义方法
public void introduce() {
System.out.println("My name is " + this.name + ", I am " + this.age + " years old.");
}
}
在上面的示例中,我们定义了一个名为Person的类,并且定义了两个属性(成员变量)name和age,还定义了一个构造方法和一个introduce方法。构造方法用于初始化对象,introduce方法用于介绍一个人的基本信息。注意到在Java中使用this关键字引用对象的属性。
要使用这个类,需要先创建它的实例,如下所示:
Person person = new Person("Tom", 18);
以上是通过new关键字创建一个Person对象,传递两个参数给它的构造函数用于初始化name和age属性。要调用introduce方法可以这样写:
person.introduce();
对象的属性和方法
对象的属性和方法可以通过.运算符来访问,例如:
person.name = "Jerry";
System.out.println(person.age);
这些语句用于修改对象的属性和输出对象的age属性。
注意到在上面的代码示例中,属性name和age都使用了private关键字修饰,这使得它们只能被类内部的代码访问。如果需要从类外部代码访问这些属性,需要提供公共的getter和setter方法:
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
这样,外部代码就可以通过调用setName和getName方法来修改和获取对象的name属性了。
类和对象的进阶应用
继承
继承是Java中一种重要的特性,它允许一个类继承另一个类的属性和方法。下面是一个示例:
public class Student extends Person {
private String major;
public Student(String name, int age, String major) {
super(name, age);
this.major = major;
}
public void study() {
System.out.println("I am studying " + this.major + ".");
}
}
在上面的代码示例中,我们定义了一个名为Student的类,继承自Person类。除了继承Person类的属性和方法外,Student类还定义了一个major属性和study方法。注意到在构造方法中使用了super关键字调用了父类(Person类)的构造方法。
使用Student类可以这样创建对象:
Student student = new Student("Jerry", 20, "Computer Science");
student.introduce();
student.study();
上面的语句用于创建一个Student对象,并且调用了其父类(Person类)的introduce方法和自己的study方法。
接口
接口是Java中定义一组方法的规范,可以被多个类实现。下面是一个示例:
public interface Runner {
public void run();
}
public class Athlete implements Runner {
public void run() {
System.out.println("I am a runner.");
}
}
在上面的代码示例中,我们定义了一个名为Runner的接口,它定义了一个run方法。还定义了一个名为Athlete的类,实现了Runner接口。在Athlete类中,我们必须定义一个run方法,以满足Runner接口的要求。接口还可以被其他类实现,以达到类之间的松耦合效果。
使用Athlete类可以这样创建对象:
Runner runner = new Athlete();
runner.run();
上面的语句创建了一个Athlete对象,并且使用Runner类型的变量来引用它,这是因为Athlete实现了Runner接口,所以可以使用Runner类型的变量来引用它。调用run方法可以输出”I am a runner.”。
以上就是Java中类和对象的基本概念和进阶应用,更多内容请参考Java官方文档和深入Java面向对象编程一书。