java第三次作业

JAVA第三次作业
(一)学习总结
1.什么是面向对象的封装性,Java中是如何实现封装性的?
所谓的封装性,就是指对外部不可见,它是将类的一些敏感信息隐藏在类的类部,不让外界直接访问到,但是可以通过getter/setter方法间接访问。
通过private来实现:
属性封装:private 属性类型 属性名称;
方法封装:private 方法返回值 方法名称(参数列表){}
2.阅读下面程序,分析是否能编译通过?如果不能,说明原因。
(1)不能通过编译,在classA中已经对secret进行封装,下面的secret++是无法对其进行修改的。
(2)不能通过编译,其中x为非静态赋值,不能直接对其进行静态引用,可改为 static int x。
3.使用类的静态变量和构造方法,可以跟踪某个类创建的对象个数。声明一个图书类,数据成员为编号,书名,书价,并拥有静态数据成员册数记录图书的总数。图书编号从1000开始,每产生一个对象,则编号自动递增(利用静态变量和构造方法实现)。下面给出了测试类代码和Book类的部分代码,将代码补充完整。
class Book{
private int bookId;
private String bookName;
private double price;
// 声明静态变量
private static int ZS;
//定义静态代码块对静态变量初始化
private static int BH;
static{
ZS=0;
BH=1000;
}

//构造方法
public Book(String bookName,double price){
    this.bookName=bookName;
    this.price=price;
    bookId=BH;
    inZH();
    inHAO();
}
public int getBookId() {
    return bookId;
}

public void setBookId(int bookId) {
    this.bookId = bookId;
}
 public String getBookName() {
    return bookName;
}
public void setBookName(String bookName) {
    this.bookName = bookName;
}
public double getPrice() {
    return price;
}
public void setPrice(double price) {
    this.price = price;
}  
//定义方法求图书总册数
static void inZH(){
    ZS++;
}
static void inHAO(){
    BH++;
}
public static int HAOMA(){
    return BH-1000;
}
//重写toString方法
public String toString(){
    return "书号"+this.getBookId()+"书名"+this.getBookName()+"价格"+this.getPrice();
}

}
public class test{
public static void main(String args[]){
Book[] books = {new Book("c语言程序设计",29.3),
new Book("数据库原理",30),
new Book("Java学习笔记",68)};
System.out.println("图书总数为:"+ Book.HAOMA());
for(Book book:books){
System.out.println(book.toString());
}
}
}
***4.什么是单例设计模式?它具有什么特点?用单例设计模式设计一个太阳类Sun。
在设计一个类时,需要保证在整个程序运行期间针对该类只存在一个实例对象。
特点:

一个类只能有一个实例;
自己创建这个实例;
整个系统都要使用这个实例
5.理解Java参数传递机制,阅读下面的程序,运行结果是什么?说明理由。
Java一般存在两种参数传递规则,一种是按值传递,一种是按址传递,在此程序中,传递给change方法 的str和ch[],str传递的是值,ch[]则传递的是地址,所以str改变的只是一个副本,而ch[]改变的则是地址中的内容,所以输出结果是 你好 Wolld
6.其他需要总结的内容。

***在编写类的时候需要添加空的构造方法,构造方法的格式需要注意是空的。

***数据的定义的时候一定要注意到其属性,需要用private进行封装,而方法适当性的不用。

***设置set和get方法的时候需要注意是否需要形参什么时候需要返回值。一般来说,set空的返回值,需要形参,get方法需要返回值,可以不用形参。

***需要学会的是BigDecimal类里面的四舍五入的方法。

在主方法Test类里面需要进行对对象的实例化,以及各种类的方法的实例化,例如输入,random的实例化。
(二)实验总结
1.按照下列要求完成类的设计
(1)设计一个日期类,用于记录年、月、日,提供对日期处理的常用方法(日期输出格式xxxx-xx-xx)。
(2)设计一个职工类,该职工类至少具有下面的属性:职工号,姓名,性别,生日,工作部门,参加工作时间,设计相应的方法。
(3)设计一个部门类,包括下列属性:部门编号,部门名称,经理,设计相应方法。
(4)设计一个测试类,采用对象数组模拟一个拥有两个部门,10个职工的单位,实现对相关信息的查询功能。
程序设计思路:首先设计日期类,职工类,部门类,在职工类中包含日期类和部门类,然后在测试类中,用数组输入员工信息,最后进行输出;
2.设计一个计算工具类,要求:
(1)为用户提供几个常见的几何体面积和体积的算法(如球的体积和表面积,圆柱体的体积和表面积,圆锥体的体积和表面积)
(2)设计一个测试类,给出几个不同的圆柱体,圆锥体,球体的尺寸,用计算工具类分别求它们体积的累加和与表面积的累加和。
(3)设计一个测试类,随机产生球,圆柱、圆锥体的尺寸,模拟考试,要求用户回答它们的体积和面积,并判断用户的回答是否正确
程序设计思路:设置属性,然后设置方法类,编写各个的计算方法。由于存在小数问题,选手需要猜的回答的数据,故需要用到BigDecimal这个类的四舍五入方法。
** 定义数组,在数组中输入值,进行计算,然后输出;
*** 用Random产生随机值,然后输入值与运算结果进行判断,看是否正确;
3.用面向对象编程思想完成评分系统
程序设计思路:设置属性,设置方法,编写求出最大,最小,总分的方法,然后从得分高到得分低依次排序,然后编写测试类,用数组的方法输入选手姓名,编号,得分情况,还需要用Arrays.sort();,进行由得分高到得分低的排序 ;
**(三)[代码托管](git@git.oschina.net:hebau_cs15/JAVA-CS01SWM.git)
1081762-20170406124954769-213626378.png

转载于:https://www.cnblogs.com/songwm/p/6672899.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值