《Java程序设计》(三)面向对象程序设计-知识点训练卷 2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》第29卷

2025-09-07
| 2份
| 38页
| 72人阅读
| 0人下载

内容正文:

编写说明:2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。 本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第29卷,是知识点训练卷。按“Java程序设计”考试纲要(三)面向对象程序设计的六点知识点要求编写,其六点要求是: 1.掌握类、对象、成员变量、成员方法、封装、继承、多态的基本概念。 2.掌握类的声明、成员变量的声明、成员方法的声明与调用,方法的参数传递与返回值、方法的重载、静态变量和静态方法。 3.掌握对象的创建和使用、构造方法与对象的初始化、成员变量、成员方法的访问、this的应用以及引用的赋值。 4.掌握类的继承、子类的声明、super、this、方法覆盖。 5.掌握类的访问权限:default、public;掌握类成员的访问权限:public、private、protected、default。 6.掌握抽象类abstract类、abstract方法和接口的声明;了解接口的实现。 2026版吉林省《信息工程类(电子与信息类)考纲百套卷》 第29卷 《Java程序设计》 (三)面向对象程序设计-知识点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、选择题(本大题共10小题,每小题2分,共20分) 1. 以下关于成员变量和局部变量的区别,说法错误的是( ) A. 成员变量在类中声明,局部变量在方法内部声明 B. 成员变量有默认初始化值,局部变量没有默认初始化值 C. 成员变量的作用域是整个类,局部变量的作用域是其所在的方法 D. 成员变量和局部变量都可以被 static 关键字修饰 答案:D 2. 若有如下类定义: class Student { private String name; private int age; public Student(String n, int a) { name = n; age = a; } public void displayInfo() { System.out.println("Name: " + name + ", Age: " + age); } } 创建 Student 对象并调用 displayInfo 方法的正确方式是( ) A. Student s; s.displayInfo(); B. Student s = new Student(); s.displayInfo(); C. Student s = new Student("Alice", 20); s.displayInfo(); D. Student.displayInfo(); 答案:C 3. 有如下代码: class OverloadTest { public void print(int num) { System.out.println("Printing int: " + num); } public void print(String str) { System.out.println("Printing String: " + str); } } 调用 OverloadTest ot = new OverloadTest(); ot.print("Hello"); 的输出结果是( ) A. Printing int: Hello B. Printing String: Hello C. 编译错误 D. 运行时错误 答案:B 4. 若有类 Car 如下: class Car { private String brand; private int year; public Car(String b, int y) { brand = b; year = y; } public void showDetails() { System.out.println("Brand: " + brand + ", Year: " + year); } } 要创建 Car 对象并调用 showDetails 方法,以下代码正确的是( ) A. Car c; c.showDetails(); B. Car c = new Car(); c.showDetails(); C. Car c = new Car("Toyota", 2020); c.showDetails(); D. Car.showDetails(); 答案:C 5.下列创建对象的语法,正确的是( ) A. Student stu = new Student (); B. Student stu = Student (); C. new Student () = stu; D. Student stu = new Student; 答案:A 6.下列关于方法重写的说法,错误的是( ) A. 方法覆盖发生在父类和子类之间 B. 子类覆盖父类方法时,方法名、参数列表必须与父类方法相同 C. 子类覆盖父类方法时,返回值类型可以任意修改 D. 子类覆盖父类方法时,访问权限不能低于父类方法的访问权限 答案:C 7.以下关于抽象类的说法,错误的是( ) A. 抽象类不能被实例化 B. 抽象类中可以有非抽象方法 C. 抽象类中必须有抽象方法 D. 抽象类可以有构造方法 答案:C 8.以下关于接口的说法,正确的是( ) A. 接口可以被实例化 B. 接口中可以有成员变量 C. 一个类只能实现一个接口 D. 接口中的方法可以有方法体 答案:B 9.下列代码中关于this 关键字的使用说法,正确的是( ) class Person { private String name; public Person(String name) { this.name = name; } } A. 错误,this 不能用于构造方法中 B. 错误,this.name 表示父类的成员变量 C. 正确,this.name 表示本类的成员变量 D. 正确,this.name 表示局部变量 答案:C 10. 有如下代码: class Shape { public void draw() { System.out.println("Drawing a shape"); } } class Circle extends Shape { @Override public void draw() { System.out.println("Drawing a circle"); } } class Square extends Shape { @Override public void draw() { System.out.println("Drawing a square"); } } public class Main { public static void drawShape(Shape shape) { shape.draw(); } public static void main(String[] args) { Circle circle = new Circle(); Square square = new Square(); drawShape(circle); drawShape(square); } } 这段代码主要体现了( ) A. 封装 B. 继承 C. 多态 D. 抽象 答案:C 二、判断题(本大题共10小题,每小题2分,共20分) 1. 成员变量必须显式初始化后才能使用,否则会编译错误。( ) 答案:错误 2. 一个类中如果没有定义构造方法,Java 编译器会自动提供一个无参构造方法。( ) 答案:正确 3. 静态变量在类加载时分配内存,在程序运行结束时释放内存。( ) 答案:正确 4. private 修饰的成员变量,只能在本类中访问,子类和其他类都无法访问。( ) 答案:正确 5.在 Java 中,一个类可以同时继承多个父类。( ) 答案:错误 6. this 关键字可以用于静态方法中,指代当前类的实例。( ) 答案:错误 7. 抽象类中必须包含抽象方法。( ) 答案:错误 8. 一个类可以实现多个接口,但只能继承一个抽象类。( ) 答案:正确 9. 可以创建抽象类和接口的实例对象。( ) 答案:错误 10.封装就是将类的成员变量全部声明为 private,不提供任何访问方式。( ) 答案:错误 三、填空题(本大题共5小题,每题2分,共10分) 1. 在 Java 中,若要实现方法的重载,除了方法名相同外,还需要保证 ______ 不同。 答案:参数列表 2. 当在成员方法中访问成员变量和局部变量同名时,可以使用 ______ 关键字来访问成员变量。 答案:this 3.在 Java 中,使用 ______ 关键字来声明子类继承父类。 答案:extends 4. 类成员的访问权限修饰符有 public、private、______ 和 ______ 四种。 答案:protected;default 5. 一个类实现接口使用 ______ 关键字。 答案:implements;多 四、读程序写结果题(本大题共5小题,每题5分,共25分) 1.以下程序的运行结果是______。 class Animal { public void eat() { System.out.println("动物吃东西"); } } class Dog extends Animal { @Override public void eat() { System.out.println("狗吃骨头"); } public void bark() { System.out.println("狗汪汪叫"); } } public class TestAnimal { public static void main(String[] args) { Animal a = new Dog(); a.eat(); // a.bark(); } } 答案:狗吃骨头 2.以下程序的运行结果是______。 class Grandfather { public void show() { System.out.println("I'm grandfather"); } } class Father extends Grandfather { @Override public void show() { System.out.println("I'm father"); } } class Son extends Father { @Override public void show() { System.out.println("I'm son"); } } public class Main { public static void main(String[] args) { Son son = new Son(); son.show(); } } 答案:I'm son 3.以下程序的运行结果是______。 class Fruit { public void taste() { System.out.println("Generic fruit taste"); } } class Apple extends Fruit { @Override public void taste() { System.out.println("Sweet apple taste"); } } class Orange extends Fruit { @Override public void taste() { System.out.println("Tangy orange taste"); } } public class Main { public static void testTaste(Fruit fruit) { fruit.taste(); } public static void main(String[] args) { Apple apple = new Apple(); Orange orange = new Orange(); testTaste(apple); testTaste(orange); } } 答案: Sweet apple taste Tangy orange taste 4.以下程序的运行结果是______。 class Animal { public void eat() { System.out.println("Animal is eating"); } } class Cat extends Animal { @Override public void eat() { System.out.println("Cat is eating fish"); } } public class Main { public static void main(String[] args) { Animal animal = new Cat(); animal.eat(); } } 答案:Cat is eating fish 5.以下程序的运行结果是______。 interface Shape { void draw(); } class Rectangle implements Shape { @Override public void draw() { System.out.println("Drawing a rectangle"); } } class Triangle implements Shape { @Override public void draw() { System.out.println("Drawing a triangle"); } } public class Main { public static void drawShape(Shape shape) { shape.draw(); } public static void main(String[] args) { Rectangle rectangle = new Rectangle(); Triangle triangle = new Triangle(); drawShape(rectangle); drawShape(triangle); } } 答案: Drawing a rectangle Drawing a triangle 五、编程题(本大题共5小题,每题5分,共25分) 1.创建一个 Animal 类,包含方法 makeSound()。创建子类 Dog、Cat 和 Bird 继承自 Animal,并重写 makeSound() 方法,分别输出不同的叫声。使用多态性,创建一个 Animal 类型的数组,存储不同的动物对象,并调用它们的 makeSound() 方法。 答案: class Animal { public void makeSound() { System.out.println("Some sound"); } } class Dog extends Animal { @Override public void makeSound() { System.out.println("Bark"); } } class Cat extends Animal { @Override public void makeSound() { System.out.println("Meow"); } } class Bird extends Animal { @Override public void makeSound() { System.out.println("Chirp"); } } public class Main { public static void main(String[] args) { Animal[] animals = {new Dog(), new Cat(), new Bird()}; for (Animal animal : animals) { animal.makeSound(); } } } 2.创建一个 BankAccount 类,包含私有属性 accountNumber(账号)、balance(余额)。提供公共的 getter 方法,以及 deposit()(存款)和 withdraw()(取款)方法。在 withdraw() 方法中,检查余额是否足够。 答案: class BankAccount { private String accountNumber; private double balance; public BankAccount(String accountNumber, double balance) { this.accountNumber = accountNumber; this.balance = balance; } public String getAccountNumber() { return accountNumber; } public double getBalance() { return balance; } public void deposit(double amount) { if (amount > 0) { balance += amount; System.out.println("Deposited: " + amount + ". New balance: " + balance); } else { System.out.println("Deposit amount must be positive."); } } public void withdraw(double amount) { if (amount > 0 && amount <= balance) { balance -= amount; System.out.println("Withdrawn: " + amount + ". New balance: " + balance); } else { System.out.println("Insufficient funds or invalid withdrawal amount."); } } } 3.创建一个 Student 类,包含私有属性 name(姓名)、scores(成绩数组)。提供公共的 getter 方法和 getAverageScore() 方法来计算平均成绩。 答案: class Student { private String name; private double[] scores; public Student(String name, double[] scores) { this.name = name; this.scores = scores; } public String getName() { return name; } public double[] getScores() { return scores; } public double getAverageScore() { if (scores.length == 0) { return 0; } double sum = 0; for (double score : scores) { sum += score; } return sum / scores.length; } } 4.创建一个 Book 类,包含私有属性 title(书名)、author(作者)、price(价格)。提供公共的 getter 和 setter 方法,并且在 setPrice() 方法中确保价格为正数。 答案: class Book { private String title; private String author; private double price; public Book(String title, String author, double price) { this.title = title; this.author = author; setPrice(price); } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public double getPrice() { return price; } public void setPrice(double price) { if (price > 0) { this.price = price; } else { System.out.println("Price must be positive."); } } } 5.创建一个 Character 类作为基础角色类,包含私有属性 name(角色名)、health(生命值)和 attackPower(攻击力)。提供公共的 getter 和 setter 方法,并且在 setHealth 方法中确保生命值不小于 0。创建两个子类 Warrior(战士)和 Mage(法师)继承自 Character。Warrior 类有一个额外的技能 charge,调用时输出 “战士发起冲锋!”;Mage 类有一个额外的技能 castSpell,调用时输出 “法师释放魔法!”。 答案: class Character { private String name; private int health; private int attackPower; public Character(String name, int health, int attackPower) { this.name = name; setHealth(health); this.attackPower = attackPower; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getHealth() { return health; } public void setHealth(int health) { if (health < 0) { this.health = 0; } else { this.health = health; } } public int getAttackPower() { return attackPower; } public void setAttackPower(int attackPower) { this.attackPower = attackPower; } } class Warrior extends Character { public Warrior(String name, int health, int attackPower) { super(name, health, attackPower); } public void charge() { System.out.println("战士发起冲锋!"); } } class Mage extends Character { public Mage(String name, int health, int attackPower) { super(name, health, attackPower); } public void castSpell() { System.out.println("法师释放魔法!"); } } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $$ 编写说明:2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。 本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第29卷,是知识点训练卷。按“Java程序设计”考试纲要(三)面向对象程序设计的六点知识点要求编写,其六点要求是: 1.掌握类、对象、成员变量、成员方法、封装、继承、多态的基本概念。 2.掌握类的声明、成员变量的声明、成员方法的声明与调用,方法的参数传递与返回值、方法的重载、静态变量和静态方法。 3.掌握对象的创建和使用、构造方法与对象的初始化、成员变量、成员方法的访问、this的应用以及引用的赋值。 4.掌握类的继承、子类的声明、super、this、方法覆盖。 5.掌握类的访问权限:default、public;掌握类成员的访问权限:public、private、protected、default。 6.掌握抽象类abstract类、abstract方法和接口的声明;了解接口的实现。 2026版吉林省《信息工程类(电子与信息类)考纲百套卷》 第29卷 《Java程序设计》 (三)面向对象程序设计-知识点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、选择题(本大题共10小题,每小题2分,共20分) 1. 以下关于成员变量和局部变量的区别,说法错误的是( ) A. 成员变量在类中声明,局部变量在方法内部声明 B. 成员变量有默认初始化值,局部变量没有默认初始化值 C. 成员变量的作用域是整个类,局部变量的作用域是其所在的方法 D. 成员变量和局部变量都可以被 static 关键字修饰 答案:D 2. 若有如下类定义: class Student { private String name; private int age; public Student(String n, int a) { name = n; age = a; } public void displayInfo() { System.out.println("Name: " + name + ", Age: " + age); } } 创建 Student 对象并调用 displayInfo 方法的正确方式是( ) A. Student s; s.displayInfo(); B. Student s = new Student(); s.displayInfo(); C. Student s = new Student("Alice", 20); s.displayInfo(); D. Student.displayInfo(); 答案:C 3. 有如下代码: class OverloadTest { public void print(int num) { System.out.println("Printing int: " + num); } public void print(String str) { System.out.println("Printing String: " + str); } } 调用 OverloadTest ot = new OverloadTest(); ot.print("Hello"); 的输出结果是( ) A. Printing int: Hello B. Printing String: Hello C. 编译错误 D. 运行时错误 答案:B 4. 若有类 Car 如下: class Car { private String brand; private int year; public Car(String b, int y) { brand = b; year = y; } public void showDetails() { System.out.println("Brand: " + brand + ", Year: " + year); } } 要创建 Car 对象并调用 showDetails 方法,以下代码正确的是( ) A. Car c; c.showDetails(); B. Car c = new Car(); c.showDetails(); C. Car c = new Car("Toyota", 2020); c.showDetails(); D. Car.showDetails(); 答案:C 5.下列创建对象的语法,正确的是( ) A. Student stu = new Student (); B. Student stu = Student (); C. new Student () = stu; D. Student stu = new Student; 答案:A 6.下列关于方法重写的说法,错误的是( ) A. 方法覆盖发生在父类和子类之间 B. 子类覆盖父类方法时,方法名、参数列表必须与父类方法相同 C. 子类覆盖父类方法时,返回值类型可以任意修改 D. 子类覆盖父类方法时,访问权限不能低于父类方法的访问权限 答案:C 7.以下关于抽象类的说法,错误的是( ) A. 抽象类不能被实例化 B. 抽象类中可以有非抽象方法 C. 抽象类中必须有抽象方法 D. 抽象类可以有构造方法 答案:C 8.以下关于接口的说法,正确的是( ) A. 接口可以被实例化 B. 接口中可以有成员变量 C. 一个类只能实现一个接口 D. 接口中的方法可以有方法体 答案:B 9.下列代码中关于this 关键字的使用说法,正确的是( ) class Person { private String name; public Person(String name) { this.name = name; } } A. 错误,this 不能用于构造方法中 B. 错误,this.name 表示父类的成员变量 C. 正确,this.name 表示本类的成员变量 D. 正确,this.name 表示局部变量 答案:C 10. 有如下代码: class Shape { public void draw() { System.out.println("Drawing a shape"); } } class Circle extends Shape { @Override public void draw() { System.out.println("Drawing a circle"); } } class Square extends Shape { @Override public void draw() { System.out.println("Drawing a square"); } } public class Main { public static void drawShape(Shape shape) { shape.draw(); } public static void main(String[] args) { Circle circle = new Circle(); Square square = new Square(); drawShape(circle); drawShape(square); } } 这段代码主要体现了( ) A. 封装 B. 继承 C. 多态 D. 抽象 答案:C 二、判断题(本大题共10小题,每小题2分,共20分) 1. 成员变量必须显式初始化后才能使用,否则会编译错误。( ) 答案:错误 2. 一个类中如果没有定义构造方法,Java 编译器会自动提供一个无参构造方法。( ) 答案:正确 3. 静态变量在类加载时分配内存,在程序运行结束时释放内存。( ) 答案:正确 4. private 修饰的成员变量,只能在本类中访问,子类和其他类都无法访问。( ) 答案:正确 5.在 Java 中,一个类可以同时继承多个父类。( ) 答案:错误 6. this 关键字可以用于静态方法中,指代当前类的实例。( ) 答案:错误 7. 抽象类中必须包含抽象方法。( ) 答案:错误 8. 一个类可以实现多个接口,但只能继承一个抽象类。( ) 答案:正确 9. 可以创建抽象类和接口的实例对象。( ) 答案:错误 10.封装就是将类的成员变量全部声明为 private,不提供任何访问方式。( ) 答案:错误 三、填空题(本大题共5小题,每题2分,共10分) 1. 在 Java 中,若要实现方法的重载,除了方法名相同外,还需要保证 ______ 不同。 答案:参数列表 2. 当在成员方法中访问成员变量和局部变量同名时,可以使用 ______ 关键字来访问成员变量。 答案:this 3.在 Java 中,使用 ______ 关键字来声明子类继承父类。 答案:extends 4. 类成员的访问权限修饰符有 public、private、______ 和 ______ 四种。 答案:protected;default 5. 一个类实现接口使用 ______ 关键字。 答案:implements;多 四、读程序写结果题(本大题共5小题,每题5分,共25分) 1.以下程序的运行结果是______。 class Animal { public void eat() { System.out.println("动物吃东西"); } } class Dog extends Animal { @Override public void eat() { System.out.println("狗吃骨头"); } public void bark() { System.out.println("狗汪汪叫"); } } public class TestAnimal { public static void main(String[] args) { Animal a = new Dog(); a.eat(); // a.bark(); } } 答案:狗吃骨头 2.以下程序的运行结果是______。 class Grandfather { public void show() { System.out.println("I'm grandfather"); } } class Father extends Grandfather { @Override public void show() { System.out.println("I'm father"); } } class Son extends Father { @Override public void show() { System.out.println("I'm son"); } } public class Main { public static void main(String[] args) { Son son = new Son(); son.show(); } } 答案:I'm son 3.以下程序的运行结果是______。 class Fruit { public void taste() { System.out.println("Generic fruit taste"); } } class Apple extends Fruit { @Override public void taste() { System.out.println("Sweet apple taste"); } } class Orange extends Fruit { @Override public void taste() { System.out.println("Tangy orange taste"); } } public class Main { public static void testTaste(Fruit fruit) { fruit.taste(); } public static void main(String[] args) { Apple apple = new Apple(); Orange orange = new Orange(); testTaste(apple); testTaste(orange); } } 答案: Sweet apple taste Tangy orange taste 4.以下程序的运行结果是______。 class Animal { public void eat() { System.out.println("Animal is eating"); } } class Cat extends Animal { @Override public void eat() { System.out.println("Cat is eating fish"); } } public class Main { public static void main(String[] args) { Animal animal = new Cat(); animal.eat(); } } 答案:Cat is eating fish 5.以下程序的运行结果是______。 interface Shape { void draw(); } class Rectangle implements Shape { @Override public void draw() { System.out.println("Drawing a rectangle"); } } class Triangle implements Shape { @Override public void draw() { System.out.println("Drawing a triangle"); } } public class Main { public static void drawShape(Shape shape) { shape.draw(); } public static void main(String[] args) { Rectangle rectangle = new Rectangle(); Triangle triangle = new Triangle(); drawShape(rectangle); drawShape(triangle); } } 答案: Drawing a rectangle Drawing a triangle 五、编程题(本大题共5小题,每题5分,共25分) 1.创建一个 Animal 类,包含方法 makeSound()。创建子类 Dog、Cat 和 Bird 继承自 Animal,并重写 makeSound() 方法,分别输出不同的叫声。使用多态性,创建一个 Animal 类型的数组,存储不同的动物对象,并调用它们的 makeSound() 方法。 答案: class Animal { public void makeSound() { System.out.println("Some sound"); } } class Dog extends Animal { @Override public void makeSound() { System.out.println("Bark"); } } class Cat extends Animal { @Override public void makeSound() { System.out.println("Meow"); } } class Bird extends Animal { @Override public void makeSound() { System.out.println("Chirp"); } } public class Main { public static void main(String[] args) { Animal[] animals = {new Dog(), new Cat(), new Bird()}; for (Animal animal : animals) { animal.makeSound(); } } } 2.创建一个 BankAccount 类,包含私有属性 accountNumber(账号)、balance(余额)。提供公共的 getter 方法,以及 deposit()(存款)和 withdraw()(取款)方法。在 withdraw() 方法中,检查余额是否足够。 答案: class BankAccount { private String accountNumber; private double balance; public BankAccount(String accountNumber, double balance) { this.accountNumber = accountNumber; this.balance = balance; } public String getAccountNumber() { return accountNumber; } public double getBalance() { return balance; } public void deposit(double amount) { if (amount > 0) { balance += amount; System.out.println("Deposited: " + amount + ". New balance: " + balance); } else { System.out.println("Deposit amount must be positive."); } } public void withdraw(double amount) { if (amount > 0 && amount <= balance) { balance -= amount; System.out.println("Withdrawn: " + amount + ". New balance: " + balance); } else { System.out.println("Insufficient funds or invalid withdrawal amount."); } } } 3.创建一个 Student 类,包含私有属性 name(姓名)、scores(成绩数组)。提供公共的 getter 方法和 getAverageScore() 方法来计算平均成绩。 答案: class Student { private String name; private double[] scores; public Student(String name, double[] scores) { this.name = name; this.scores = scores; } public String getName() { return name; } public double[] getScores() { return scores; } public double getAverageScore() { if (scores.length == 0) { return 0; } double sum = 0; for (double score : scores) { sum += score; } return sum / scores.length; } } 4.创建一个 Book 类,包含私有属性 title(书名)、author(作者)、price(价格)。提供公共的 getter 和 setter 方法,并且在 setPrice() 方法中确保价格为正数。 答案: class Book { private String title; private String author; private double price; public Book(String title, String author, double price) { this.title = title; this.author = author; setPrice(price); } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public double getPrice() { return price; } public void setPrice(double price) { if (price > 0) { this.price = price; } else { System.out.println("Price must be positive."); } } } 5.创建一个 Character 类作为基础角色类,包含私有属性 name(角色名)、health(生命值)和 attackPower(攻击力)。提供公共的 getter 和 setter 方法,并且在 setHealth 方法中确保生命值不小于 0。创建两个子类 Warrior(战士)和 Mage(法师)继承自 Character。Warrior 类有一个额外的技能 charge,调用时输出 “战士发起冲锋!”;Mage 类有一个额外的技能 castSpell,调用时输出 “法师释放魔法!”。 答案: class Character { private String name; private int health; private int attackPower; public Character(String name, int health, int attackPower) { this.name = name; setHealth(health); this.attackPower = attackPower; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getHealth() { return health; } public void setHealth(int health) { if (health < 0) { this.health = 0; } else { this.health = health; } } public int getAttackPower() { return attackPower; } public void setAttackPower(int attackPower) { this.attackPower = attackPower; } } class Warrior extends Character { public Warrior(String name, int health, int attackPower) { super(name, health, attackPower); } public void charge() { System.out.println("战士发起冲锋!"); } } class Mage extends Character { public Mage(String name, int health, int attackPower) { super(name, health, attackPower); } public void castSpell() { System.out.println("法师释放魔法!"); } } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $$

资源预览图

《Java程序设计》(三)面向对象程序设计-知识点训练卷 2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》第29卷
1
《Java程序设计》(三)面向对象程序设计-知识点训练卷 2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》第29卷
2
《Java程序设计》(三)面向对象程序设计-知识点训练卷 2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》第29卷
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。