Java有关类的练习题

  1. 建立一个人类(Person)和学生类(Student),功能要求如下。
    (1)Person类中包含4个私有型的数据成员name,addr,sex,age,分别为字符串型,字符串型,字符型及整型,表示姓名,地址,性别和年龄。一个4参数构造方法,一个2参数的构造方法,一个无参数的构造方法,一个输出方法显示4种属性
    (2)Student类继承Person类,并增加成员math,english存放数学成绩和英语成绩。一个6参数构造方法,一个2参数的构造方法,一个无参数的构造方法

Person类

class Person{
	private String name;
	private String addr;
	private char sex;
	private int age;
	
	Person(String name,String addr,char sex,int age) {
		this.name = name;
		this.addr = addr;
		this.sex = sex;
		this.age = age;
	}
	Person(String name,String addr){ 
		this.name = name;
		this.addr = addr;
	}
	Person(){}
	
	public void print() {
		System.out.println("姓名:"+this.name);
		System.out.println("地址:"+this.addr);
		System.out.println("性别:"+this.sex);
		System.out.println("年龄:"+this.age);
	}
}

Student类

class Student extends Person{
	int math;
	int english;
	Student(String name,String addr,char sex,int age,int math,int english){
		super(name,addr,sex,age);
		this.math = math;
		this.english = english;
	}
	Student(int math,int english){
		this.math = math;
		this.english = english;
	}
	Student(){}
	@Override 
	public void print() {
		super.print();
		System.out.println("数学成绩:"+math);
		System.out.println("英语成绩:"+english);
	}
}

测试一下

		Student stu = new Student("张三","安徽",'男',20,99,87);
		stu.print();

在这里插入图片描述

2.定义员工类,具有姓名,年龄,性别属性,并具有构造方法和显示数据方法。定义管理层类,继承员工类,并自己的属性职务和年薪。定义职员类,继承员工类,并有自己的属性所属部门和月薪。
1)员工类

class staff{
	private String name;
	private int age;
	private char sex;
	
	public staff(String name,int age,char sex){
		this.name = name;
		this.age = age;
		this.sex = sex;
	}
	public String getName() {
		return this.name;
	}
	public int getAge() {
		return this.age
	}
	public char getSex() {
		return this.sex;
	}
	public void tell() {
		System.out.println("姓名:"+this.name);
		System.out.println("年龄:"+this.age);
		System.out.println("性别:"+this.sex);
	}
}

2)管理层类

class administration extends staff{
	private String post;
	private double salary;
	public administration(String name,int age,char sex,String post,double salary) {
		super(name, age, sex);
		this.post = post;
		this.salary = salary;
	}
	public String getPost() {
		return this.getPost();
	}
	public double getSalary() {
		return this.salary;
	}
	@Override
	public void tell() {
		super.tell();
		System.out.println("职位:"+this.post);
		System.out.println("年薪:"+this.salary);
	}
}

3)职员类

class staffMember extends staff{
	private String department;
	private double salary;
	public staffMember(String name,int age,char sex,String department,double salary) {
		super(name,age,sex);
		this.department = department;
		this.salary = salary;
	}
	public String getDepartment() {
		return this.department;
	}
	public double getSalary() {
		return this.salary;
	}
	@Override
	public void tell() {
		super.tell();
		System.out.println("部门:"+this.getDepartment());
		System.out.println("月薪:"+this.getSalary());
	}
}

3.编写程序,统计出字符串want you to know one thing中字母n和字母o的出现次数

		String str = "want you to know one thing";
		char [] arr = str.toCharArray();
		int oNum = 0;
		int nNum = 0;
		for(char element:arr) {
			if(element=='o')
				oNum++;
			else if(element=='n')
				nNum++;
		}
		System.out.println("字母n出现的次数:"+nNum);
		System.out.println("字母o出现的次数:"+oNum);

4.建立一个可以实现整型数组的操作类(Array),类中允许操作的数组大小有外部动态指定,同时在Array类里需要提供有数组的以下处理:进行数据的增加(如果数据满了则无法增加),可以实现数组的容量扩充,取得数组的全部内容,完成之后再次基础上派生两个子类。
数组排序类
数组反转类

  • 5
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 编写一个Java程序,将一个整数转换为二进制数并输出。 ```java import java.util.Scanner; public class BinaryConverter { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("请输入一个整数:"); int num = input.nextInt(); String binary = Integer.toBinaryString(num); System.out.println(num + "的二进制数为:" + binary); } } ``` 2. 编写一个Java程序,计算两个数的最大公约数和最小公倍数并输出。 ```java import java.util.Scanner; public class GCDandLCM { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("请输入第一个数:"); int num1 = input.nextInt(); System.out.print("请输入第二个数:"); int num2 = input.nextInt(); int gcd = gcd(num1, num2); int lcm = lcm(num1, num2); System.out.println(num1 + "和" + num2 + "的最大公约数为:" + gcd); System.out.println(num1 + "和" + num2 + "的最小公倍数为:" + lcm); } // 求最大公约数 public static int gcd(int x, int y) { return y == 0 ? x : gcd(y, x % y); } // 求最小公倍数 public static int lcm(int x, int y) { return x * y / gcd(x, y); } } ``` 3. 编写一个Java程序,计算一个数的平方根并输出。 ```java import java.util.Scanner; public class SquareRoot { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("请输入一个数:"); double num = input.nextDouble(); double sqrt = Math.sqrt(num); System.out.println(num + "的平方根为:" + sqrt); } } ``` 4. 编写一个Java程序,计算一个数的阶乘并输出。 ```java import java.util.Scanner; public class Factorial { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("请输入一个正整数:"); int num = input.nextInt(); int factorial = 1; for (int i = 1; i <= num; i++) { factorial *= i; } System.out.println(num + "的阶乘为:" + factorial); } } ``` 5. 编写一个Java程序,计算一个数的倒数并输出。 ```java import java.util.Scanner; public class Reciprocal { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("请输入一个数:"); double num = input.nextDouble(); double reciprocal = 1 / num; System.out.println(num + "的倒数为:" + reciprocal); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值