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…

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

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

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,…

在vue中安装使用vux

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

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

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

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

这篇文章描述了如何实现对Spring MVC Web应用程序的自定义用户访问(登录注销)。 作为前提,建议读者阅读这篇文章 ,其中介绍了一些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指针…

sass变量

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

根据您的命令-命令设计模式

命令设计模式是一种广为人知的设计模式&#xff0c;它属于行为设计模式&#xff08;“四人帮”的一部分&#xff09;。 顾名思义&#xff0c;它与应用程序中的动作和事件有关。 问题陈述&#xff1a; 假设有一个网页将在其中包含多个菜单的情况。 编写此代码的一种方法是使条件…

用js和jQuery做轮播图

Javascript或jQuery做轮播图 css样式 <style> a{ text-decoration:none; } .naver{ width: 100%; position:relative; }.images{position:relative;width: 100%;height: 400px; } .images img{position:absolute;left: 0;top: 0;width: 100%;height: 400px;opacity: 0;fi…

【开发调试】谷歌浏览器中调试移动网页和测试网速下页面效果

、 今天有幸给大家分享一下谷歌浏览器针对移动网页测试的技巧&#xff0c;主要是最近做个微信公共号网站。所以就要对页面测试拉。移动网页我们最长测得就是各种手机大小的页面效果和出现网络问题的效果展示。 今天就简单分享下在谷歌浏览器测试页面的适配和网速限制展示。…

拼多多分享好友砍价Java实现_拼多多砍价怎么分享到朋友圈 砍价发到微信朋友圈方法...

拼多多是一款电商社交的共享式购物平台&#xff0c;现在还推出了砍价的活动&#xff0c;只要邀请好友砍价&#xff0c;你就以最低的价格购买商品&#xff0c;还可以可能是免费拿到&#xff0c;那么今天小编就给大家讲讲如何将自己的砍价信息分享到微信朋友圈。首先下载手机拼多…

通过6个简单的步骤在Windows上运行Apache Hive

注意 &#xff1a;您需要安装cygwin才能运行本教程&#xff0c;因为Hadoop&#xff08;Hive需要&#xff09;需要cygwin才能在Windows上运行。 至少&#xff0c;系统中必须存在Basic&#xff0c;Net&#xff08;OpenSSH&#xff0c;tcp_wrapper软件包&#xff09;和与安全相关的…

vue 环境的搭建及初始化项目

其实超级简单&#xff0c;虽然网上很多&#xff0c;但是我顺便记录下相当于做笔记吧 1nodejs 的安装&#xff0c; 在node官网下载&#xff0c;点击安装&#xff0c;安装的时候最好选择路径在d盘 2设置环境变量 我的电脑-->属性-->系统环境变量- 系统变量新增一个NODE…

Java堆转储:您可以完成任务吗?

如果您像我一样对Java性能充满热情&#xff0c;那么堆转储分析对您来说应该不是一个谜。 如果是这样&#xff0c;那么好消息是您将有机会提高您的Java故障诊断技能和JVM知识。 JVM现已发展到今天&#xff0c;与旧的JDK 1.0 – JDK 1.4天相比&#xff0c;今天生成和分析JVM堆转…

java 调用 ictclas50_1-Ictclas50分词系统ForJava

Ictclas50是一个分词库&#xff0c;我嘛主要用来做中文分词&#xff0c;其也能分出词性等东西。1.环境搭建进入到下载页面进行下载&#xff1a;如下图&#xff1a; 因为我的系统是64位的windows&#xff0c;所以选择了到数第三行进行下载。其JAVA版本是通过JNI去调用dll库&…

Beam概念学习系列之Pipeline Runners

不多说&#xff0c;直接上干货&#xff01; https://beam.apache.org/get-started/beam-overview/ 在 Beam 管道上运行引擎会根据你选择的分布式处理引擎&#xff0c;其中兼容的 API 转换你的 Beam 程序应用&#xff0c;让你的 Beam 应用程序可以有效的运行在指定的分布式处理引…

运行 java classnotfound_JAR运行出现ClassNotFoundException异常的解决办法

2009年10月30日最近在弄个聊天室,由于要跟数据库通信,用到了JDBC的3个jar,在eclipse里OK的,但布置到服务器坏事了,不知道怎么弄JDBC的3个jar了写个autoStart.batjava -jar chatServer.jarpause运行报错:F:\mydocuments\java project\socketTest\release>java -jar chatServe…

idea 创建多模块依赖Maven项目

转载地址&#xff1a; http://www.cnblogs.com/tibit/p/6185704.html idea 创建多模块依赖Maven项目 本来网上的教程还算多&#xff0c;但是本着自己有的才是自己的原则&#xff0c;还是自己写一份的好&#xff0c;虽然可能自己也不会真的用得着。 1. 创建一个新maven项目 2.…