内容正文:
编写说明: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("法师释放魔法!");
}
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$