Java中的面向对象编程:类和对象、封装、继承、多态
一、类和对象
在Java中,类是用来描述一类对象的属性和行为的。类是对象的抽象,而对象则是类的实例化。在Java中,定义类需要使用class关键字,如下所示:
public class Person {
// 类的属性
private String name;
private int age;
// 类的方法
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
} 上面的代码定义了一个名为Person的类,包含了一个字符串类型的name属性和一个整型的age属性,以及四个方法,分别是setName、setAge、getName和getAge,用来设置和获取属性值。
当我们需要使用这个类创建一个对象时,可以使用new关键字,如下所示:
Person p = new Person();
上面的代码创建了一个名为p的Person对象。
二、封装
封装是面向对象编程的一项重要特性。它可以将类的内部细节隐藏起来,只暴露必要的接口供外部使用。在Java中,可以使用访问修饰符来控制类的成员的访问权限,如下所示:
public class Person {
// 类的属性
private String name;
private int age;
// 类的方法
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
} 在上面的代码中,name和age属性都被声明为private,只有通过setName、setAge、getName和getAge这四个方法才能访问这两个属性。这样,就可以保证类的内部细节不被外部直接访问。
三、继承
继承是面向对象编程的又一个重要特性。它可以让一个类继承另一个类的属性和方法,从而减少代码的重复性。在Java中,可以使用extends关键字来实现继承,如下所示:
public class Student extends Person {
// 类的属性
private int grade;
// 类的方法
public void setGrade(int grade) {
this.grade = grade;
}
public int getGrade() {
return grade;
}
} 上面的代码定义了一个名为Student的类,它继承了Person类的所有属性和方法,并新增了一个整型的grade属性和两个方法,分别是setGrade和getGrade,用来设置和获取grade属性值。
四、多态
多态是面向对象编程的又一个重要特性。它可以让一个对象以多种形态呈现,从而支持更灵活的编程。在Java中,多态可以通过方法重载和方法覆盖来实现。
方法重载指的是在同一个类中定义多个同名方法,但这些方法的参数列表不同。Java会根据调用时传入的参数类型和数量来确定调用哪一个方法,如下所示:
public class Calculator {
// 加法
public int add(int x, int y) {
return x + y;
}
// 减法
public int add(int x, int y, int z) {
return x + y + z;
}
} 上面的代码定义了一个名为Calculator的类,包含了两个同名方法add,但这两个方法的参数列表不同。当我们需要使用这个类进行加法运算时,可以根据实际情况调用不同的add方法。
方法覆盖指的是在子类中重新定义一个与父类同名的方法,但方法的实现不同。当我们调用子类对象的这个方法时,会执行子类中的方法实现,而不是父类中的方法实现,如下所示:
public class Animal {
public void run() {
System.out.println("Animal is running...");
}
}
public class Cat extends Animal {
public void run() {
System.out.println("Cat is running...");
}
} 上面的代码定义了一个名为Animal的类和一个名为Cat的类,Cat类继承了Animal类,并重新定义了run方法的实现。当我们调用Cat对象的run方法时,会执行Cat类中的run方法实现。
五、函数、函数细节用法参数讲解及代码案例
1. 类的定义
在Java中,类是用来描述一类对象的属性和行为的。定义一个类需要使用class关键字,如下所示:
public class Person {
// 类的属性
private String name;
private int age;
// 类的方法
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
} 上面的代码定义了一个名为Person的类,包含了一个字符串类型的name属性和一个整型的age属性,以及四个方法,分别是setName、setAge、getName和getAge,用来设置和获取属性值。
2. 对象的创建
当我们需要使用一个类创建一个对象时,可以使用new关键字,如下所示:
Person p = new Person();
上面的代码创建了一个名为p的Person对象。
3. 属性的访问
在Java中,可以使用访问修饰符来控制类的成员的访问权限。在Person类中,name和age属性被声明为private,只有通过setName、setAge、getName和getAge这四个方法才能访问这两个属性,如下所示:
public class Person {
// 类的属性
private String name;
private int age;
// 类的方法
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
} 上面的代码中,setName和setAge方法用于设置name和age属性的值,而getName和getAge方法用于获取name和age属性的值。
4. 继承
在Java中,可以使用extends关键字来实现继承。例如,下面的代码定义了一个名为Student的类,它继承了Person类的所有属性和方法,并新增了一个整型的grade属性和两个方法,分别是setGrade和getGrade,用来设置和获取grade属性值。
public class Student extends Person {
// 类的属性
private int grade;
// 类的方法
public void setGrade(int grade) {
this.grade = grade;
}
public int getGrade() {
return grade;
}
} 上面的代码中,Student类继承了Person类,因此可以直接使用Person类中的属性和方法,而不需要重新定义。
5. 多态
在Java中,可以使用方法重载和方法覆盖来实现多态。
方法重载指的是在同一个类中定义多个同名方法,但这些方法的参数列表不同。例如,下面的代码定义了一个名为Calculator的类,包含了两个同名方法add,但这两个方法的参数列表不同。
public class Calculator {
// 加法
public int add(int x, int y) {
return x + y;
}
// 减法
public int add(int x, int y, int z) {
return x + y + z;
}
} 当我们需要进行加法运算时,可以根据实际情况调用不同的add方法。
方法覆盖指的是在子类中重新定义一个与父类同名的方法,但方法的实现不同。例如,下面的代码定义了一个名为Animal的类和一个名为Cat的类,Cat类继承了Animal类,并重新定义了run方法的实现。
public class Animal {
public void run() {
System.out.println("Animal is running...");
}
}
public class Cat extends Animal {
public void run() {
System.out.println("Cat is running...");
}
} 当我们调用Cat对象的run方法时,会执行Cat类中的run方法实现。
六、总结
本文介绍了Java中的面向对象编程的基本概念,包括类和对象、封装、继承、多态,并提供了易于理解的代码案例。希望本文能够帮助读者更好地理解面向对象编程的概念和应用。
本文为翻滚的胖子原创文章,转载无需和我联系,但请注明来自猿教程iskeys.com
