一、实验目的
1 、 掌握类与对象的关系;
2 、 掌握类的定义;
3 、 掌握对象的声明及使用;
4 、 掌握构造方法的概念及调用时机;
5 、 掌握构造方法的重载;
6 、 掌握匿名对象的使用。
二、实验学时
2 学时
三、实验类型 验证性实验
四、实验需求
1、硬件
每位学生配备计算机一台
2、软件
Windows XP 操作系统, JDK,eclipse ,MySQL
3、网络
无
4、工具
无
五、实验理论与预备知识
1 、 类与对象的关系;
2 、 类的定义;
3 、 对象的声明及使用;
4 、 构造方法的概念及调用时机;
5 、 构造方法的重载;
6 、 匿名对象的使用。
六、实验内容与结果
1 、 编写一个应用程序, 该程序中有 3 个类: Trangle 、Leder 和 Circle,分别用来刻画“三角形”、“梯 形”和“圆形”。
要求: Trangle 类具有类型为double 的三个边,以及周长、面积属性, Trangle 类具有返回周 长、面积以及修改三个边的功能。另外, Trangle 类还具有一个 boolean 型的属性, 该属性用 来判断三个属能否构成一个三角形。 Lader 类具有类型double 的上底、下底、高、面积属性 |
package xxbb;
class Trangle
{
double sideA,sideB,sideC,area,length;
boolean boo;
public Trangle(double a, double b, double c)
{
sideA=a;sideB=b;sideC=c;
if(a+b>c&&a+c>b&&b+c>a) boo=true;
else boo=false;
}
double getLength()
{
if(boo) {
length=sideA+sideB+sideC;
return length;
}
else {
System.out.println("不是一个三角形,不能计算周长");
return 0;
}
}
public double getArea() {
if(boo) {
double p=(sideA+sideB+sideC)/2.0;
area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC));
return area;
}
else {
System.out.println("不是一个三角形,不能计算面积");
return 0;
}
}
public void setABC(double a,double b,double c) {
sideA=a;sideB=b;sideC=c;
if(a+b>c&&a+c>b&&b+c>a) boo=true;
else boo=false;
}
}
class Lader
{
double above, bottom,heigth,area;
Lader(double a,double b,double h){
above=a;bottom=b;heigth=h;
}
public double getArea()
{
area=(above+bottom)/2*heigth;
return area;
}
}
class Circle
{
double radius,area;
Circle(double r){
radius=r;
}
double getArea()
{
return 3.14*radius*radius;
}
double getLength()
{
return 2*3.14*radius;
}
}
public class zyy {
public static void main(String[] args) {
double length,area;
Circle circle=null;
Trangle trangle;
Lader lader;
circle=new Circle(10);
trangle=new Trangle(3,4,5);
lader=new Lader(3,4,10);
length=circle.getLength();
System.out.println("圆的周长:"+length);
area=circle.getArea();
System.out.println("圆的面积:"+area);
length=trangle.getLength();
System.out.println("三角形的周长:"+length);
area=circle.getArea();
System.out.println("三角形的面积:"+area);
area=lader.getArea();
System.out.println("梯形的面积::"+area);
trangle.setABC(12, 34, 1);
area=trangle.getArea();
length=trangle.getLength();
}
}
2 、 编写一个公司员工类。
(1) 数据成员:员工号、姓名、薪水、部门。
(2) 方法: ①设置数据成员信息; ②显示信息。
要求:利用构造方法完成设置信息,其中有四个重载的构造方法 单参:只传递员工号,则员工姓名:无名氏。薪水: 0,部门:未定。 双参:传递员工号,姓名,则员工薪水为 1000,部门:后勤 4 参:传递员工号,姓名,部门,薪水 无参:则均为空值 |
package xxbb;
class Employee
{
private String num;
private String name;
private float salary;
private String department;
// 无参
public Employee()
{
}
// 单参
public Employee(String num) {
this.num=num;
this.name="无名氏";
this.salary=0;
this.department="未定";
}
// 双参
public Employee(String num ,String name ) {
this.num=num;
this.name=name;
this.department="后勤";
this.salary=1000;
}
// 4参
public Employee(String num,String name,float salary,String department) {
this.num=num;
this.name=name;
this.department=department;
this.salary=salary;
}
public void print(){
System.out.println("员工编号为:"+num);
System.out.println("员工姓名:"+name);
System.out.println("部门:"+department);
System.out.println("薪水:"+salary);
System.out.println();
}
}
public class two {
public static void main(String[] args) {
Employee emp1=new Employee();
emp1.print();
Employee emp2=new Employee("010101");
emp2.print();
Employee emp3=new Employee("020202","张三");
emp3.print();
Employee emp4=new Employee("030303","李四",3000,"人资");
emp4.print();
}
}
3 、 完成图书馆管理系统中相关的类定义。
(1) 定义与编写学生 student 类, 学生属性包括“学号”、“姓名”、“性别”、“专业”、“班级”。
(2) 定义与编写图书 book 类, 图书属性包括“书名”、“ISBN 号”、“册数”。
(3) 登陆角色 role 类,角色类包括“用户名”、“密码”、“角色类型”。
要求: 1、完成以上各类中的 setter 和 getter 接口 2、测试以上各类,并写出每个测试用例 |
package xxbb;
class student{
private String nom;
private String name;
private String sex;
private String spe;
private String gra;
public student(String nom,String name,String sex,String spe,String gra) {
this.setNom(nom);
this.setName(name);
this.setSex(sex);
this.setSpe(spe);
this.setGra(gra);
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom=nom;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getSpe() {
return spe;
}
public void setSpe(String spe) {
this.spe=spe;
}
public String getGra() {
return gra;
}
public void setGra(String gra) {
this.gra=gra;
}
public void print1(){
System.out.println("学号为:"+nom);
System.out.println("学生姓名:"+name);
System.out.println("性别:"+sex);
System.out.println("专业:"+spe);
System.out.println("班级:"+gra);
System.out.println();
}
}
class book{
private String bookname;
private String isbn;
private String sum;
public book(String bookname,String isbn,String sum) {
this.setBookname(bookname);
this.setIsbn(isbn);
this.setSum(sum);
}
public String getBookname() {
return bookname;
}
public void setBookname(String bookname) {
this.bookname=bookname;
}
public String getIsbn() {
return isbn;
}
public void setIsbn(String isbn) {
this.isbn=isbn;
}
public String getSum() {
return sum;
}
public void setSum(String sum) {
this.sum=sum;
}
public void print2(){
System.out.println("书名为:"+bookname);
System.out.println("ISBN:"+isbn);
System.out.println("册数:"+sum);
System.out.println();
}
}
class role{
private String username;
private String password;
private String bleed;
public role(String username,String password,String bleed) {
this.setUsername(username);
this.setPassword(password);
this.setBleed(bleed);
}
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 getBleed() {
return bleed;
}
public void setBleed(String bleed) {
this.bleed=bleed;
}
public void print3(){
System.out.println("用户名为:"+username);
System.out.println("密码:"+password);
System.out.println("角色类型:"+bleed);
System.out.println();
}
}
public class zyy {
public static void main(String[] args) {
student stu=new student("017","赵永源","男","软件工程","2020级");
stu.print1();
book bo=new book("Java开发实战经典","123456","100");
bo.print2();
role ro=new role("yuan","123456","学生");
ro.print3();
}
}
4 、 字符串操作。
(1) 从字符串“Java 技术学习班 20121205”中提取开班日期。
(2) 将字符串“Java 技术学习班 20121205”中的“Java”替换为“JavaEE”。
(3) 取出“Java 技术学习班 20121205”第八个字符。
(4) 清除“Java 技术学习班 20121205”中所有的“0”。
(5) 从任意给定的身份证号中提取此人的出生日期。
package xxbb;
import java.util.Scanner;
public class yuan {
public static void main(String[] args) {
String str1="Java 技术学习班 20121205";
System.out.println(str1.substring(10));
String newStr1=str1.replace("Java","JavaEE");
System.out.println(newStr1);
String str2="Java 技术学习班 20121205";
System.out.println(str2.charAt(8));
String newstr2=str2.replace("0","");
System.out.println(newstr2);
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
if(s.length()!=18) {
System.out.println("请输入正确的身份证号。");
}
else
{
String s1=s.substring(6,14);
System.out.println(s1);
}
}
}