一、实验目的

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);}}}

实验四 类和对象; 类的继承和派生;多态性; 接口;构造器应用相关推荐

  1. 1~22(面向编程+ES6中的类和对象+类的继承+面向对象版tab栏切换)

    1 面向对象编程介绍 1.1 两大编程思想 面向过程 面向对象 1.2 面向过程编程POP(Process-oriented programming) 面向过程就是分析出解决问题所需要的步骤,然后用函 ...

  2. 继承类 基类的赋值_Chapter10:继承与派生(四)

    之前的文章把继承和派生的基本概念和内部原理都大致理清了.但是类可以视作是一种特殊的数据类型--它也具有转换的功能,称为转型,这一节展开讨论它,以及如何通过指针跨越权限访问不同成员的技巧. 1.类的转型 ...

  3. python代码学习——类与对象提升(继承、超继承,类的例题,魔术方法)

    python代码学习--类与对象提升 继承 继承的特殊属性: 代码示例 方法的重写和覆盖(overrrid) 总结 超继承 继承中的初始化 多继承 例题 类的魔术方法 哈希(hash)和eq方法 bo ...

  4. 【Python】类与对象:封装/继承/多态

    在python中如何将一些功能借鉴及实现? python模块的迁移调用?感觉还是没有形成系统化的构建? 在学习C++的时候,来了一丝灵感,python的重点不是也是类和对象吗? 本人实践python项 ...

  5. python的类和对象——类的静态字段番外篇

    什么是静态字段 在开始之前,先上图,解释一下什么是类的静态字段(我有的时候会叫它类的静态变量,总之说的都是它.后面大多数情况可能会简称为类变量.): 我们看上面的例子,这里的money就是静态字段,首 ...

  6. 【Java开发语言 03】第三章 面向对象编程(面向对象与面向过程+类和对象+类成员一:属性+类成员二:方法+对象的创建和使用+封装和隐藏+构造器+关键字this,package,import)

    面向对象编程 1 面向对象与面向过程 1.1 java类及类的成员 2 java语言的基本元素:类和对象 2.1 类的语法格式 2.2 创建Java自定义类 2.3 对象的创建及使用 3 类的成员之一 ...

  7. Python 学习笔记 系统模块 面对对象思想 类和对象 类中的方法与对象 构造函数和析构函数

    一.系统模块: UTC:国际标准时间, 格林尼治天文时间,UTC+8 时间戳:指定时间距离1970.1.1 00:00:00的秒数 time:时间 datetime:日期 calendar:万年历 o ...

  8. java类对象实验问题_Java类与对象实验答案

    Java类与对象实验答案Tag内容描述: 1.Java实验报告 计科.信工版2013-2014-2 实验报告 一.实验项目:类与对象 二.实验目的: 1. 学会使用类来封装对象的属性和功能 2. 掌握 ...

  9. Kotlin学习笔记 第二章 类与对象 第三节接口 第四节 函数式接口

    参考链接 Kotlin官方文档 https://kotlinlang.org/docs/home.html 中文网站 https://www.kotlincn.net/docs/reference/p ...

  10. Py函数直接传入root是啥意思_阿里云python课程笔记(四):函数amp;类和对象

    接阿里云python课程笔记(三):数据结构 我们讨论一下python中的深拷贝和浅拷贝 dic1 = {'user': 'lsgogroup', 'num': [1, 2, 3]}# 引用对象dic ...

最新文章

  1. FD.io/VPP — ACL
  2. C++函数模板(二)引用
  3. maven 之dependencyManagement 和 pluginManagement
  4. ADS中startup.s文件启动分析
  5. Python笔记-对字符串进行URL编码及解码
  6. 没有足够的值_了解食物的GI值,让你的减脂效率翻倍
  7. VMware虚拟机安装系统
  8. pso粒子群优化算法+MATLAB代码
  9. 查看字节码的插件jclasslib设置成英文
  10. 3DMax 2014中文版安装破解教程
  11. 2015-4-11 美术馆 红楼 景山 香山 西单
  12. SharePoint传出电子邮件配置
  13. 标签助手(TagHelper)
  14. strtolower() 把字符串转换为小写字母
  15. 一些基于 D3.js 的图表库
  16. 学籍(学生)信息管理系统
  17. 小米天气api html,小米天气app
  18. 仿百度首页登陆框拖拽效果(可视窗口内拖动)
  19. Java项目:JSP在线水果销售商城
  20. 独家:微贷网上市细节曝光!2018年上半年净利达3.63亿

热门文章

  1. Ubuntu Docker 开启2375端口 【手把手教程】
  2. EasyExcel,用法
  3. Postgresql10数据库之计算多边形凸壳
  4. GCN 论文英语表达总结
  5. java入门之 美图相机-缓存功能
  6. 英文主要搜索引擎及目录
  7. c语言实现TXT转doc,国二c语言笔试题库可转TXT.doc
  8. markdown2 激活码
  9. C. Ivan the Fool and the Probability Theory
  10. (四)Python--数据容器