Java 是一种面向对象的编程语言,类和对象是其中最重要的概念之一,下面是 Java 中类和对象的知识点总结的完整攻略。
类与对象的基本概念
在 Java 中,类是一种抽象的概念,其用于描述某一类事物的共同属性和行为。而对象则是实际存在的、具有一定状态和行为的个体,是类的一个实例化结果。
定义类
在 Java 中,定义一个类需要使用 class
关键字,类名通常采用大驼峰式命名法。类的定义通常由以下部分组成:
public class MyClass {
// 成员变量
private int number;
// 构造器
public MyClass(int number) {
this.number = number;
}
// 成员方法
public int getNumber() {
return number;
}
}
其中,public
定义了这个类是公有的,可以在包外使用;private
定义了成员变量是私有的,只能在类内部使用;this
关键字用于引用当前对象;而构造器则是用于对象的初始化过程,会在对象创建时自动调用。
创建对象
要创建一个类的对象,需要使用 new
关键字,例如:
MyClass obj = new MyClass(10);
成员变量与成员方法
类中定义的成员变量(或属性)表示某一类事物的共同属性;成员方法(或函数)则表示某一类事物的共同行为。例如:
public class Person {
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void sayHello() {
System.out.println("Hello, my name is " + name);
}
}
其中,name
和 age
就是该类的成员变量,而 sayHello
就是该类的成员方法。
静态变量和静态方法
静态变量和静态方法是类的属性和方法,而不是对象的属性和方法,所以可以直接通过类名进行访问,不需要创建对象。例如:
public class MathUtil {
public static final double PI = 3.14;
public static int add(int a, int b) {
return a + b;
}
}
其中,PI
和 add
都是该类的静态属性和方法,可以直接通过类名 MathUtil.PI
和 MathUtil.add(1, 2)
进行访问。
继承和多态
继承是 Java 中实现代码重用和类之间共享代码的一种重要机制。子类继承父类后,可以直接访问父类中的成员变量和方法,而不需要重新定义。例如:
public class Student extends Person {
String school;
public Student(String name, int age, String school) {
super(name, age);
this.school = school;
}
@Override
public void sayHello() {
System.out.println("Hello, my name is " + name + ", I am a student of " + school);
}
}
其中,Student
是 Person
的子类,定义了自己的 school
属性和 sayHello
方法。而 @Override
注解表示这是一个方法的覆盖,用于强制检查是否正确地覆盖了父类的方法。该类在调用 sayHello
方法时,会根据实际对象的类型来动态决定调用哪个方法,这就是多态。
示例说明
示例一:计算圆的面积
public class Circle {
double r;
public Circle(double r) {
this.r = r;
}
public double getArea() {
return MathUtil.PI * r * r;
}
}
其中,定义了一个 Circle
类用于描述圆,其属性为半径 r
,方法为计算面积 getArea
。该类中使用了静态变量 MathUtil.PI
,该变量表示圆周长与直径比值,是一个常量。
Circle circle = new Circle(10);
double area = circle.getArea();
System.out.println(area);
上述代码可以创建一个半径为 10 的圆对象并计算其面积,结果为 314.0
。
示例二:设计游戏角色
public class GameCharacter {
private String name;
private int level;
private int hp;
private int mp;
public GameCharacter(String name, int level) {
this.name = name;
this.level = level;
this.hp = level * 100;
this.mp = level * 50;
}
public void attack(GameCharacter target) {
int damage = level * 10;
target.hp -= damage;
System.out.println(name + " attacked " + target.getName() + ", caused " + damage + " damage");
}
public String getName() {
return name;
}
public int getLevel() {
return level;
}
public int getHp() {
return hp;
}
public int getMp() {
return mp;
}
}
其中,定义了一个 GameCharacter
类用于描述游戏角色,其属性为名称、等级、生命值和魔法值,方法为攻击和获取属性信息。在其构造器中,根据等级计算角色的生命值和魔法值。
GameCharacter hero = new GameCharacter("Hero", 1);
GameCharacter enemy = new GameCharacter("Enemy", 1);
hero.attack(enemy);
上述代码可以创建两个等级为 1 的游戏角色对象,并进行攻击,结果会输出攻击者名称、目标名称和造成的伤害值。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java中类和对象的知识点总结 - Python技术站