Java第三次作业 1502 马 帅

《Java技术》第三次作业

(一)学习总结

1.书中对面向对象封装性的定义为:指把对象的属性和行为看成一个密不可分的整体,把不需要让外界知道的信息隐蔽起来。简单来说,就是定义的一些对象,只有在本类中才可以使用,在外界是不可以访问和调用的。
Java中通过使用private和public声明来区别私有和公由,例如:

class setting{private int a=1;public int b=1;
}
public class Test {public static void main(String[] args){setting get;int c,d;c=get.a;d=get.b;}
}

这段代码是不能通过编译的,会提示“a不可视”,即"a"不能被调用:
1079820-20170406163302160-1902600951.png

2.阅读下面程序

(1)如代码:

class A{private int secret = 5;
}
public class Test{public static void main(String args[]){A a = new A();System.out.println(a.secret++);}
}

此段代码不能通过编译,提示“A.secret不可视”,因为封装性的缘故,在Test类的main()方法中是不能调用".secret"的。

(2)如代码:

public class Test{int x = 50;static int y = 200;public static void method(){System.out.println(x+y);}public static void main(String args[]){Test.method();}
}

此段代码不能通过编译,因为"x"为非静态变量,不能对非静态变量进行静态引用。

3.修改后的代码如下:

class Book{static int bookId;String bookName;double price;// 声明静态 变量static int count;//定义静态代码块对静态变量初始化static {count=0;bookId=1000;}//构造方法public Book(){}public Book(String bookName,double price) {this.bookName=bookName;this.price=price;count++;}  public int getBookId(){return ++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;}//定义方法求图书总册数public static int totalBook(){return count;}//重写toString方法public String toString(){return "书名为:"+getBookName()+"图书编号为:"+getBookId()+",价格为:"+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.totalBook()); for(Book book:books){System.out.println(book.toString());}}   
}

4. 单例设计模式只能有自己创建的唯一一个实例,并且必须给所有其他对象提供这一实例。

class Sun{private static Sun instance = new Sun() ;private Sun(){}public static Sun getInstance(){return instance ;}
}

5.如下代码:

public class Test {String str = new String("你好  ");char[] ch = { 'w','o','l','l','d' };public static void main(String args[]) {Test test = new Test();test.change(test.str, test.ch);System.out.print(test.str);System.out.print(test.ch);}public void change(String str, char ch[]) {str = "hello";ch[0] = 'W';}
}

运行结果为:“你好 Wolld”
为什么不为“hello Wolld”呢?原因很简单,通过调用传参,传递的为str字符串和ch[]字符数组的地址,所以修改字符数组,即为修改内容;而修改的字符串内容,可以理解为是在修改形参,并不影响实参的值,因为传递的是内容而不是地址。
6.使用构造方法后,我觉得很多的程序变的更加清晰,即使出错也可以很快地确认错误的位置,十分方便。还有就是感觉前边的知识不能忘啊,例如比较,比较double数值是十分重要的一个点,用到了很多次。

(二)实验总结

1.按照下列要求完成类的设计
(1)设计一个日期类,用于记录年、月、日,提供对日期处理的常用方法(日期输出格式xxxx-xx-xx)。
(2)设计一个职工类,该职工类至少具有下面的属性:职工号,姓名,性别,生日,工作部门,参加工作时间,设计相应的方法。
(3)设计一个部门类,包括下列属性:部门编号,部门名称,经理,设计相应方法。
(4)设计一个测试类,采用对象数组模拟一个拥有两个部门,10个职工的单位,实现对相关信息的查询功能。

  • 程序设计思路:
    (1)日期类:用set和get方法记录年月日即可;
    (2)职工类:用set和get方法记录职工号、姓名、性别,并用Date(日期类)定义生日和工作时间,用Department(部门类)定义所属部门;
    (3)部门类:用set和get方法记录部门编号、部门名称,并用Employee(职工类)定义经理;
    (4)测试类:输入数据并输出。

2.设计一个计算工具类,要求:
(1)为用户提供几个常见的几何体面积和体积的算法(如球的体积和表面积,圆柱体的体积和表面积,圆锥体的体积和表面积)(可以学习使用static关键字)
(2)设计一个测试类,给出几个不同的圆柱体,圆锥体,球体的尺寸,用计算工具类分别求它们体积的累加和与表面积的累加和。
(3)设计一个测试类,随机产生球,圆柱、圆锥体的尺寸,模拟考试,要求用户回答它们的体积和面积,并判断用户的回答是否正确

  • 程序设计思路:
    (1)输入类:将半径、高、母线长等参数输入;
    (2)计算类:定义π的值为3.14,调用输入类中的参数,对所有公式进行计算;
    (3)测试类:分两个部分。第一个部分,输入参数存入输入类,调用计算类中的公式进行计算;第二个部分,使用Random类生成随机数,即对用户出题,让用户输入答案,判断答案是否正确。
  • 实验问题分析:
    问题:在对用户出题时,结果无法判断。
    原因:精度不同。
    解决方案:将两个值四舍五入后判断内容是否一致,就可以进行判断了。

3.用面向对象编程思想完成评分系统

  • 程序设计思路:
    (1)定义各选手的信息变量和分数数组变量,并写出接口,方便用Arrays.sort()进行排序;
    (2)输入各选手的信息,在排序后进行输出。

4.用面向对象编程思想编写猜拳游戏

  • 程序设计思路:
    (1)电脑类:定义电脑的名字,和分数,使用随机数生成电脑的出拳;
    (2)选手类:与电脑类定义相同,只不过在出拳的方法不再使用随机数生成;
    (3)游戏类:分别生成电脑类变量和选手类变量,输出规则,并决定是否开始,使用循环实现多次游戏,并定义变量记录游戏次数,每次游戏结束调用判断方法判断游戏结果,并询问是否继续;
    (4)调用游戏类中的初始化和开始游戏的方法。

(三)代码托管

  • 码云commit历史截图
    1079820-20170406173452582-1461735650.png

转载于:https://www.cnblogs.com/masart/p/6674599.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/371140.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sass运算

sass具有运算的特性,可以对数值型的Value(如:数字、颜色、变量等)进行加减乘除四则运算。 请注意运算符前后请留一个空格,不然会出错。 scss.style css.style 本文转载于:猿2048https://www.mk2048.com/blog/blog.php?idiij12j&titles…

163 coremail_Icoremail企业邮箱

高速稳定iCoremail企业邮箱于国内外多个网络运营商的主干网数据中心放置邮件服务器,同时采用我司自主研发的Coremail电子邮件系统,从多方面保障了用户的流畅体验。安全可靠iCoremail企业邮箱使用欧洲最大的反病毒安全提供商的Sophos反病毒系列产品&#…

jquery-基础事件[下]

<script>$(function () {mouseover mouseout mouseenter mouseleave的区别$(div).mouseover(function () {$(this).css(background, red);}).mouseout(function () {$(this).css(background, green);});$(div).mouseenter(function () {$(this).css(background, red);}).…

JavaOne 2012:NetBeans.Next –未来路线图

我从Continental Ballroom 4和一个NetBeans主题&#xff08; 项目Easel &#xff09;到Continental Ballroom 5&#xff0c;走了必要的几个步骤&#xff0c;以查看另一个面向NetBeans的演示文稿&#xff1a;“ NetBeans.Next –未来路线图”。 Ashwin Rao发起了“羽毛之鸟”&am…

LeetCode day30

LeetCode day30 害&#xff0c;昨天和今天在搞数据结构的报告&#xff0c;后面应该也会把哈夫曼的大作业写上来。 今天认识认识贪心算法。(&#xff61;&#xff65;∀&#xff65;)&#xff89; 2697. 字典序最小回文串 给你一个由 小写英文字母 组成的字符串 s &#xff0c;…

html注册表

这是第一次使用html写一个简单的注册表&#xff08;有不对的地方希望大家可以帮我指出来谢谢?&#xff09; <!DOCTYPE html><html><head> <title>木木音乐网第一次注册表</title></head><body><h2>使用手机号码注册</…

C#复习正则表达式

由于前段时间为了写工具学的太J8粗糙 加上最近一段时间太浮躁 所以静下心来复习 一遍以前学的很弱的一些地方1 委托 public delegate double weituo(double a, double b);public static double test1(double a,double b){return a * b;}public static double test2(double a,…

使用JPA侦听器的数据库加密

最近&#xff0c;我不得不将数据库加密添加到几个字段中&#xff0c;并且发现了很多不好的建议。 建筑问题 最大的问题是建筑。 如果持久性管理器悄悄地处理您的加密&#xff0c;那么根据定义&#xff0c;您的体系结构将在持久性和安全性设计之间要求紧密而不必要的绑定。 您…

Java是先难后易吗_在解决问题的时候,是先难后易还是先易后难?

有家长问&#xff0c;孩子一旦听到不同声音&#xff0c;就沮丧&#xff0c;一旦有难的事情&#xff0c;就逃避&#xff0c;怎么办&#xff1f;回答这个问题之前&#xff0c;我们问一个问题“你给孩子玩穿纽扣游戏&#xff0c;是一开始给孩子玩容易穿的纽扣好呢&#xff1f;还是…

在vue中安装使用vux

最近因为的工作的原因在弄vue&#xff0c;从后端弄到前端之前一直用js&#xff0c;现在第一次接触vue感觉还挺有意思的&#xff0c;就是自己太菜了&#xff0c;这个脑子呀。。。。不太够用。。。。。页面设计用了一个叫vux的东西&#xff0c;vux可以提供一些组件&#xff0c;用…

form表单 获取与赋值

form表单中使用频繁的组件: 文本框、单选框、多选框、下拉框、文本域form通过getValues()获取表单中所有name的值 通过setValues({key:values})给对应的name值进行赋值&#xff0c;其中key对应的name值 在给单选框和多选框赋值时&#xff0c;有几个疑惑的地方&#xff1a;  …

Zabbix全方位告警接入-电话/微信/短信都支持

http://www.cnblogs.com/baidu-gaojing/p/5128035.html 百度告警平台地址&#xff1a; http://gaojing.baidu.com 联系我们&#xff1a; 邮箱&#xff1a;gaojingbaidu.com 电话&#xff1a;13924600771 QQ群&#xff1a;183806029 对于使用zabbix的用户&#xff0c;要接入百度…

Spring MVC定制用户登录注销实现示例

这篇文章描述了如何实现对Spring MVC Web应用程序的自定义用户访问&#xff08;登录注销&#xff09;。 作为前提&#xff0c;建议读者阅读这篇文章 &#xff0c;其中介绍了一些Spring Security概念。 该代码示例可从Spring-MVC-Login-Logout目录中的Github获得。 它从带有注释…

HTML5与CSS3权威指南笔记案例1

第1章 <!DOCTYPE html> <meta charset "UTF-8"> <title> Search </title> <form> <p><label>Search&#xff1a;<input name"search" autofocus></label> </p> </form> <!DOCTYPE&…

java循环的概念_Java数据结构之循环队列简单定义与用法示例

本文实例讲述了Java数据结构之循环队列简单定义与用法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;一、概述&#xff1a;1、原理&#xff1a;与普通队列的区别在于循环队列添加数据时&#xff0c;如果其有效数据end maxSize - 1(最大空间)的话&#xff0c;end指针…

Unrecognized option: -jrockit

weblogic报错&#xff1a; starting weblogic with Java version: Unrecognized option: -jrockit Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. Starting WLS with line: /data/jdk1.8.0_45/bin/java -jroc…

51nod 1105 第K大的数

基准时间限制&#xff1a;1 秒 空间限制&#xff1a;131072 KB 分值: 40 难度&#xff1a;4级算法题 数组A和数组B&#xff0c;里面都有n个整数。数组C共有n^2个整数&#xff0c;分别是A[0] * B[0],A[0] * B[1] ......A[1] * B[0],A[1] * B[1]......A[n - 1] * B[n - 1]&#x…

在Tomcat上设置和使用Apache Solr

前一阵子花了一点时间来玩Solr&#xff0c;但立即被我们可以在一些更大的数据集上获得的性能所震撼。 这是我的一些初始设置和配置学习信息&#xff0c;也许可以帮助某人启动它并更快地运行。 首先在Windows上进行设置。 下载并解压缩Apache Tomcat和Solr&#xff0c;然后将其复…

sass变量

sass变量用法 1、sass变量必须以$符开头&#xff0c;后面紧跟着变量名 2、变量值和变量名之间就需要使用冒号(:)分隔开&#xff08;就像CSS属性设置一样&#xff09; 3、如果值后面加上!default则表示默认值 默认变量 sass的默认变量&#xff1a;仅需要在值后面加上!defaul…

西安4年java多少时间_西安学习java一般要多久

线程小n行的任务/任务执的数单个量为间隔执行池大所需时间时间&#xff0c;西安学习的配置&#xff0c;西安学习行定行池务的务执c配在执注置任方法时任上标&#xff0c;下解行调问题务的方度任有以异步决办采用法&#xff1a;上述式执。比如、般要多本名(套接套接5套t地地节点…