1.编写出一个通用的人员类(Person),该类具有姓名(Name)、年龄(Age)、性别(Sex)等域。然后对Person 类的继承得到一个学生类(Student),该类能够存放学生的5门课的成绩,并能求出平均成绩。最后在Main函数中对student类的功能进行验证。
package cn.edu.nefu.exercise1;
/*1.编写出一个通用的人员类(Person),该类具有姓名(Name)、年龄(Age)、性别(Sex)等域。
然后对Person 类的继承得到一个学生类(Student),该类能够存放学生的5门课的成绩,并能求出平均成绩。
最后在Main函数中对student类的功能进行验证。*/
public class Person {
String Name;
int Age;
String Sex;
public Person(String name, int age, String sex) {
super();
Name = name;
Age = age;
Sex = sex;
}
}
package cn.edu.nefu.exercise1;
import java.util.Scanner;
//然后对Person 类的继承得到一个学生类(Student),该类能够存放学生的5门课的成绩,并能求出平均成绩。
public class Student extends Person {
int[] scores = new int[5];
public Student(String name, int age, String sex) {
super(name, age, sex);
scores();
}
//存入成绩
public void scores(){
for(int i = 0;i<scores.length;i++){
System.out.println("请输入"+this.Name+"同学第"+(i+1)+"门成绩:");
Scanner sc = new Scanner(System.in);
scores[i] = sc.nextInt();
}
}
//求平均成绩
public void aveScores(){
int sum = 0;
for(int i = 0;i<scores.length;i++){
sum += scores[i];
}
System.out.println(this.Name+"同学平均成绩是:"+(double)sum/scores.length);
}
}
package cn.edu.nefu.exercise1;
public class Test {
public static void main(String[] args) {
Student s = new Student("李一",19,"男");
s.aveScores();
}
}
3..(1)定义一个游戏中Hero 英雄的类,在该类中定义英雄的名字, 生命值和等级3 个属性,定义一个构造函数完成对生命值和等级的初始化,分别赋初值为100,1。同时实现名字的输入和英雄信息的输出。
(2)在上一题的基础上,为英雄再定义拥有一个参数的构造方法,传入一个英雄类型的值,如果为1,则为普通英雄,生命值为100,如果该值为2,则为高级英雄,生命值初始化为200。
(3)在上两英雄类型的基础上,为英雄添加一个基本战斗的方法, 该方法拥有一个英雄类型的参数,当传入另一个英雄时,能降低对方100 点血。 再增加一个绝招的重载方法,加入一个战斗类型参数,通过输入不同绝招参数,降低对方不同的血量。
package cn.edu.nefu.exercise2;
import java.util.Scanner;
public class Hero {
// 3..(1)定义一个游戏中Hero 英雄的类,在该类中定义英雄的名字, 生命值和等级3 个属性,
// 定义一个构造函数完成对生命值和等级的初始化,分别赋初值为100,1。同时实现名字的输入和英雄信息的输出。
String name;
int vitality;//生命值
int grade;
//名字输入
public void nameInput(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入英雄名字:");
name = sc.nextLine();
}
//英雄信息输出
public void showInfo(){
System.out.println("姓名:"+name+"\n生命值:"+vitality+"\n等级:"+grade);
System.out.println();
}
public Hero(){
super();
this.vitality = 100;
this.grade = 1;
nameInput();
showInfo();
}
// (2)在上一题的基础上,为英雄再定义拥有一个参数的构造方法,传入一个英雄类型的值,
// 如果为1,则为普通英雄,生命值为100,如果该值为2,则为高级英雄,生命值初始化为200。
public Hero(int type){
nameInput();
if(type==1){
this.vitality = 100;
System.out.println("普通英雄创建成功;");
}else if(type == 2){
this.vitality = 200;
System.out.println("高级英雄创建成功;");
}
this.grade = 1;
showInfo();
}
// (3)在上两英雄类型的基础上,为英雄添加一个基本战斗的方法, 该方法拥有一个英雄类型的参数,
// 当传入另一个英雄时,能降低对方100 点血。 再增加一个绝招的重载方法,加入一个战斗类型参数,
// 通过输入不同绝招参数,降低对方不同的血量。
public void combat(Hero hero){
hero.vitality -= 100;
System.out.println(hero.name+"受到攻击,生命值减100;");
hero.showInfo();
}
public void combat(Hero hero,int type){
if(type == 1){
hero.vitality -= 50;
System.out.println(hero.name+"受到轻度攻击,生命值减50");
}else if(type == 2){
hero.vitality -= 80;
System.out.println(hero.name+"受到中度攻击,生命值减80");
}else{
hero.vitality -= 1