【无标题】【无标题】实验四 类和对象;类的继承和派生;多态性; 接口;构造器应用

本文展示了如何使用Java编程实现面向对象的图形类(如Triangle、Ladder和Circle)以及员工管理类(Staff)。Triangle类包含了判断是否能构成三角形的逻辑,Lader和Circle类分别提供了计算梯形和圆的面积的方法。同时,员工管理类(Staff)通过不同的构造方法实现了不同信息的初始化,包括员工号、姓名、薪水和部门。所有类都提供了getter和setter方法以访问和修改属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.

编写一个应用程序,该程序中有 3 个类:TrangleLeder Circle,分别用来刻画“三角形”、“梯形”和“圆形”。

要求:Trangle 类具有类型为 double 的三个边,以及周长、面积属性,Trangle 类具有返回周

长、面积以及修改三个边的功能。另外,Trangle 类还具有一个 boolean 型的属性,该属性用

来判断三个属能否构成一个三角形。

Lader 类具有类型 double 的上底、下底、高、面积属性,具有返回面积的功能。

Circle 类具有类型为 double 的半径、周长和面积属性,具有返回周长、 面积的功能。

Triangle类

package lei;

import java.util.Scanner;

public class Triangle {
	private double a;
	private double b;
	private double c;
	private boolean isTriangle;
	//构造方法
	public Triangle(){
		
	}
	public Triangle(double a,double b,double c) {
		this.a=a;
		this.b=b;
		this.c=c;	
	}
	//Triangle()方法 判断是不是三角形
	public boolean Triangle() {	
		if((a+b>c&&a-b<c)&&(a+c>b&&a-c<b)&&(b+c>a&&b-c<a)) {
			return true;
		}else {
		    return false;
		}
	}
	//get set 得到三条边的长
	public double getA() {
		return a;
	}
	public void setA(double a) {
		this.a=a;
	}
	public double getB() {
		return b;
	}
	public void setB(double b) {
		this.b=b;
	}
	public double getC() {
		return c;
	}
	public void setC(double c) {
		this.c=c;
	}
	//周长
	public double getZhouChang() {
		isTriangle=Triangle();     //isTriangle = true或false
		if(isTriangle) {
			double zhou=a+b+c;
			return zhou;
		}
		else {
			System.out.println("三边不能构成上三角形!");
			return 0;
		}
	}
	//面积
	public double getMianJi() {
		isTriangle=Triangle();    //isTriangle = true或false
		if(isTriangle) {	
			return (a+b+c)*0.5;
		}else {
			System.out.println("三边不能构成上三角形!");
			return 0;
		}
	}
	//询问是否要修改三角形的三条边
	public void Ask() {
		while(true) {
			System.out.println("请问是否要修改三角形的三条边");
			System.out.println("是(请输入1)");
			System.out.println("否(请输入0)");
			Scanner sc=new Scanner(System.in);
			int select=sc.nextInt();
			if(select==1) {
				UpDate();
			}else {
				System.out.println("谢谢使用!");
				break;
			}
		}
	}
	//更新边长
	public void UpDate() {
		Scanner sc=new Scanner(System.in);
		System.out.println("请依次输入更改后的三角形的三条边:");
		double a=sc.nextDouble();
		double b=sc.nextDouble();
		double c=sc.nextDouble();
		//用set把a b c赋值给this.a,b,c   否则a b c的值没有改变
		setA(a);
		setB(b);
		setC(c);

		System.out.println("三角形的周长:"+getZhouChang());
    	System.out.println("三角形的面积:"+getMianJi());
		
	}
}

Lader类

package lei;

public class Lader {
	private double shangDi;
	private double xiaDi;
	private double high;
	//构造方法
	public Lader() {
		
	}
	public Lader(double shangDi,double xiaDi,double high) {
		this.shangDi=shangDi;
		this.xiaDi=xiaDi;
		this.high=high;	
	}
	//set get
	public double getshangDi() {
		return shangDi;
	}
	public void setshangDi(double shangDi) {
		this.shangDi=shangDi;
	}
	public double getxiaDi() {
		return xiaDi;
	}
	public void setxiaDi(double xiaDi) {
		this.xiaDi=xiaDi;
	}
	public double gethigh() {
		return high;
	}
	public void sethigh(double high) {
		this.high=high;
	}
	//
	public double getMianji2() {
		double mianji=(shangDi+xiaDi)*high*0.5;
		return mianji;
	}
}

Circle类

package lei;

public class Circle {
	private double r;
	//构造方法
	public Circle() {
		
	}
	public Circle(double r) {
		this.r=r;
	}
	//set get
	public double getr() {
		return r;
	}
	public void setr(double r) {
		this.r=r;
	}
	//
	public double getMianJi3(){
		double s=3.1415*r*r;
		return s;
	}
}

测试:

package lei;

import java.util.Scanner;

public class shiyan4_1 {
    public static void main(String[] args) {
    	Triangle T1=new Triangle(6,8,10);
    	Lader l1=new Lader(4,6,3);  //上底 下底 高 
    	Circle c1=new Circle(5);     //半径
    	Scanner sc=new Scanner(System.in);
    	
    	System.out.println("三角形的周长:"+T1.getZhouChang());
    	System.out.println("三角形的面积:"+T1.getMianJi());
    	T1.Ask();
    	System.out.println("梯形的面积是:"+l1.getMianji2());
    	System.out.println("圆的面积是:"+c1.getMianJi3());
    }
}

运行结果:

 

2.编写一个公司员工类。

1) 数据成员:员工号、姓名、薪水、部门。

2) 方法:①设置数据成员信息;②显示信息。

要求:利用构造方法完成设置信息,其中有四个重载的构造方法

单参:只传递员工号,则员工姓名:无名氏。薪水:0,部门:未定。

双参:传递员工号,姓名,则员工薪水为 1000,部门:后勤

4 参:传递员工号,姓名,部门,薪水

无参:则均为空值

Staff类:

package lei;

public class Staff {
	int staffId;
	String staffName;
	int staffSalary;
	String staffDepartment;
	//构造方法
	//无参
	public Staff() {
		this.staffId=0;
		this.staffName=null;
		this.staffSalary=0;
		this.staffDepartment=null;
	}
	//单参
	public Staff(int staffId) {
		this.staffId=staffId;
		this.staffName="无名氏";
		this.staffSalary=0;
		this.staffDepartment="未定";
	}
	//双参
	public Staff(int staffId,String staffName) {
		this.staffId=staffId;
		this.staffName=staffName;
		this.staffSalary=1000;
		this.staffDepartment="后勤";
	}
	//四参
	public Staff(int staffId,String staffName,int staffSalary,String staffDepartment) { 
		this.staffId=staffId;
		this.staffName=staffName;
		this.staffSalary=staffSalary;
		this.staffDepartment=staffDepartment;
	}
	// get  set
	public int getStaffId() {
		return staffId;
	}
	public void setStaffId(int staffId) {
		this.staffId = staffId;
	}
	public String getStaffName() {
		return staffName;
	}
	public void setStaffName(String staffName) {
		this.staffName = staffName;
	}
	public int getStaffSalary() {
		return staffSalary;
	}
	public void setStaffSalary(int staffSalary) {
		this.staffSalary = staffSalary;
	}
	public String getStaffDepartment() {
		return staffDepartment;
	}
	public void setStaffDepartment(String staffDepartment) {
		this.staffDepartment = staffDepartment;
	}
	public void print() {
		System.out.println("员工号:"+this.staffId+" "+"员工名:"+this.staffName+" "+"工资:"+
	                        this.staffSalary+" "+"职位:"+this.staffDepartment);
		
	}

测试:

public class shiyan4_2 {
      public static void main(String[] args) {
    	  Staff s1=new Staff();
    	  Staff s2=new Staff(10002);
    	  Staff s3=new Staff(10003,"李四");
    	  Staff s4=new Staff(10004,"王五",2000,"前台");
    	  
    	  s1.print();
    	  s2.print();
    	  s3.print();
    	  s4.print();
	}
     
}

运行结果:

 

3.完成图书馆管理系统中相关的类定义。

1) 定义与编写学生 student 类,学生属性包括“学号”、“姓名”、“性别”、“专业”、“班级”。

2) 定义与编写图书 book 类,图书属性包括“书名”、“ISBN 号”、“册数”。

3) 登陆角色 role 类,角色类包括“用户名”、“密码”、“角色类型”。

要求:1、完成以上各类中的 setter 和 getter 接口

2、测试以上各类,并写出每个测试用例

Student类:

package lei;

public class Student {
	String sno;
	String sname;
	String sex;
	String major;
	String sclass;
	public Student() {
		super();
	}
	public Student(String sno, String sname, String sex, String major, String sclass) {
		super();
		this.sno = sno;
		this.sname = sname;
		this.sex = sex;
		this.major = major;
		this.sclass = sclass;
	}
	public String getSno() {
		return sno;
	}
	public void setSno(String sno) {
		this.sno = sno;
	}
	public String getSname() {
		return sname;
	}
	public void setSname(String sname) {
		this.sname = sname;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getMajor() {
		return major;
	}
	public void setMajor(String major) {
		this.major = major;
	}
	public String getSclass() {
		return sclass;
	}
	public void setSclass(String sclass) {
		this.sclass = sclass;
	}
	@Override
	public String toString() {
		return "Student [学号=" + sno + ", 姓名=" + sname + ", 性别=" + sex + ", "
				+ "专业=" + major + ", 班级=" + sclass+ "]";
	}
//	public void print() {
//		System.out.println("学号:"+this.sno+"  姓名"+this.sname+"  性别:"+
//	                       this.sex+"  专业:"+this.major+"  班级"+this.sclass);
//	}
}

Book类:

package lei;

public class Book {
	String bname;
	String bno;
	int bsum;
	public Book() {
		
	}
	public Book(String bname,String bno,int bsum) {
		this.bname=bname;
		this.bno=bno;
		this.bsum=bsum;
	}
	public String getbname() {
		return bname;
	}
	public void setbname(String bname) {
		this.bname=bname;
	}
	public String getbno() {
		return bno;
	}
	public void setbno(String bno) {
		this.bno=bno;
	}
	public int getbsum() {
		return bsum;
	}
	public void setbsun() {
		this.bsum=bsum;
	}
	@Override
	public String toString() {
		return "Book [书名=" + bname + ", 编号=" + bno + ", 册数=" + bsum + "]";
	}
}

Role类:

package lei;

public class Role {
	String userName;
	String password;
	String roleType;   //学生 老师 家长
	public Role() {
		super();
	}
	public Role(String userName, String password, String roleType) {
		super();
		this.userName = userName;
		this.password = password;
		this.roleType = roleType;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getRoleType() {
		return roleType;
	}
	public void setRoleType(String roleType) {
		this.roleType = roleType;
	}
	@Override
	public String toString() {
		return "Role [用户名=" + userName + ", 密码=" + password + ",角色类型=" + roleType + "]";
	}
}

测试:

package lei;

public class shiyan4_3 {
	public static void main(String[] args) {
		Student s1=new Student("1002","苏安乐","女","医学信息工程","2020级医学信息工程本科班");
		Book b1=new Book("云边有个小卖铺","20010101",1);
		Role r1=new Role("安乐","147258","学生");
		System.out.println(s1);
		System.out.println(b1);
		System.out.println(r1);
//		s1.print();
	}
}

运行结果:

 

明天会更好,加油吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值