201771010118《面向对象程序设计(java)》第四周学习总结
1、实验目的与要求
(1) 理解用户自定义类的定义;
(2) 掌握对象的声明;
(3) 学会使用构造函数初始化对象;
(4) 使用类属性与方法的使用掌握使用;
(5) 掌握package和import语句的用途。
2.理论知识总结
a.类 类是构造对象的模板或蓝图;
b.对象 要想使用OOP,一定要清楚对象的三个特征:
①对象的行为②对象的状态③对象标识
同一个类的所有对象实例,由于支持相同的行为而具有家族式的相似性。对象的行为是用可调用的方法定义的。
类名 对象名 = new 类名();
识别类的简单规则是在分析问题的过程中寻找名词,而方法对应着动词。
2、使用预定义类:
(1)对象与对象变量
一个对象变量并没有实际包含一个对象,而仅仅引用一个对象。
(2)Java类库中的LocalDate类位于Java。Time包中
3.用户自定义类;
4.静态域与静态方法;
5.方法参数
5.对象构造
7.包
8.类路径
9.文档注释
10.类设计技巧
3.实验内容和步骤
实验1 测试以下程序,掌握文件输入输出程序设计技术(文件输入输出,教材61-62).
|
import java.io.*; import java.util.*; public class FileWriteReadTest { public static void main(String[] args) throws IOException{ //写入文件演示 PrintWriter out = new PrintWriter("myfile.txt"); out.println("姓名 高数 Java 数据结构 平均成绩 总成绩"); out.println("张三 20 30 40 0 0"); out.println("李四 50 60 70 0 0"); out.close();//输出完毕,需要close //读入文件演示 Scanner in = new Scanner(new File("myfile.txt"));//为myfile.txt这个File创建一个扫描器in int number = 1;//行号 System.out.println(in.nextLine()); while(in.hasNextLine()){//判断扫描器是否还有下一行未读取,该循环把文件的每一行都读出 String line = in.nextLine();//读出myfile.txt的下一行 System.out.print("第"+(++number)+"行的内容: "); Scanner linescanner = new Scanner(line);//行内容建立扫描器 linescanner.useDelimiter(" ");//使用空格作为分隔符 String name = linescanner.next(); String math = linescanner.next(); String java = linescanner.next(); String ds = linescanner.next(); String avg = linescanner.next(); String total = linescanner.next(); System.out.println("name="+name+" math="+math+" java="+java+" ds="+ds+" avg"+avg+" total="+total); } in.close();//读入完毕,最后需要对其进行close。 } } |

实验2 导入第4章示例程序并测试。
测试程序1:
l 编辑、编译、调试运行程序4-2(教材104页);

l 结合程序运行结果,掌握类的定义与类对象的用法,并在程序代码中添加类与对象知识应用的注释;
l 尝试在项目中编辑两个类文件(Employee.java、 EmployeeTest.java ),编译并运行程序。
l 参考教材104页EmployeeTest.java,设计StudentTest.java,定义Student类,包含name(姓名)、sex(性别)、javascore(java成绩)三个字段,编写程序,从键盘输入学生人数,输入学生信息,并按以下表头输出学生信息表:
姓名 性别 java成绩

程序代码:
import java.util.*;
public class Student
{
public static void main(String[] args) {
System.out.println("请输入学生个数:");
Scanner in=new Scanner(System.in);
int number =in.nextInt();
StudentTest[] score=new StudentTest[number];
for(int i=0;i<number;i++)
{
System.out.println("第"+(i+1)+" 个学生信息输入"+"姓名:"); String name = in.next();
System.out.print("性别:"); String sex = in.next();
System.out.print("成绩:"); int j = in.nextInt();
score[i] =new StudentTest(name,sex,j);
}
for(int j1=0;j1<number;j1++)
{
System.out.println("姓名:"+score[j1].getName()+"\t"+"性别:"+score[j1].getSex()+"\t"+"成绩:"+score[j1].getJavascore());
}
}
}
class StudentTest
{
private String name;
private String sex;
private int javascore;
public StudentTest(String n,String s,int j)
{
name =n;
sex =s;
javascore =j;
}
public String getName()
{
return name;
}
public String getSex()
{
return sex;
}
public int getJavascore()
{return javascore;}
}
测试程序2:
l 编辑、编译、调试运行程序4-3(教材116);

l 结合程序运行结果,理解程序代码,掌握静态域(netxtId)与静态方法(getNextId)的用法,在相关代码后添加注释;
l 理解Java单元(类)测试的技巧。
测试程序3:
l 编辑、编译、调试运行程序4-4(教材121);

l 结合程序运行结果,理解程序代码,掌握掌握Java方法参数的用法,在相关代码后添加注释;
测试程序4:
l 编辑、编译、调试运行程序4-5(教材129);

l 结合程序运行结果,理解程序代码,掌握Java用户自定义类的用法,掌握对象构造方法及对象使用方法,在相关代码后添加注释。
测试程序5:
l 编辑、编译、调试运行程序4-6、4-7(教材135);

l 结合程序运行结果,理解程序代码,掌握Java包的定义及用法,在相关代码后添加注释;
实验3 编写长方形类Rectangle与圆形类Circle,其中Rectangle类设置私有属性:width,length;Circle类设置私有属性radius。编写Rectangle类的带参构造函数Rectangle(int width,int length), Circle类的带参构造函数Circle(int radius),编写两个类的toString方法(Eclipse可自动生成)。上述2个类均定义以下方法:
求周长的方法public int getPerimeter()
求面积的方法public int getArea()
在main方法中完成以下任务:
(1) 输入1行长与宽,创建一个Rectangle对象;
(2) 输入1行半径,创建一个Circle对象;
(3) 将两个对象的周长加总输出,将两个对象的面积加总输出。
import java.util.*;
class Math {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入长方形的长:");
int length = in.nextInt();
System.out.println("请输入长方形的宽:");
int width = in.nextInt();
System.out.print("请输入圆的半径:");
double radius = in.nextDouble();
Rectangle x = new Rectangle(length, width);
Circle y = new Circle(radius);
double a = x.getPerimeter() + y.getPerimeter();
double b = x.getArea() + y.getArea();
System.out.println("圆的周长为:" + y.getPerimeter() + "圆的面积为:" + y.getArea());
System.out.println("矩形的周长是:" + x.getPerimeter() + "矩形面积为:" + x.getArea());
System.out.println("周长和:" + a + "\n" + "面积和" + b);
}
}
class Circle {
private double radius;
public Circle(double y) {
radius = y;
}
public double getPerimeter()
{
double Perimeter = 2 * 3.14* radius;
return Perimeter;
}
public double getArea()
{
double getArea = radius * radius * 3.14;
return getArea;
}
}
class Rectangle {
private double width;
private double length;
public Rectangle(double w, double l)
{
width = w;
length = l;
}
public double getPerimeter()
{
double Perimeter = (width +length) * 2;
return Perimeter;
}
public double getArea()
{
double Area = width * length;
return Area;
}
}
运行结果:

实验总结:
通过本周的学习,我对对象和类有了更深层次的了解与掌握,认识了什么是类,什么是对象,并了解了对象的三个特征:对象的行为,对象的状态,对象标识。对自定义类与API自己做了多方面的了解。在实验中对提升了自己编程的能力,虽然中间出现了很多问题,但在自己的摸索探索中学到了自己不足的东西。
但在学习任务中部分自学内容理解起来有困难,希望老师可以在课堂上对作业内容中的问题多多解释。
201771010118《面向对象程序设计(java)》第四周学习总结的更多相关文章
- 201771010118马昕璐《面向对象程序设计java》第八周学习总结
第一部分:理论知识学习部分 1.接口 在Java程序设计语言中,接口不是类,而是对类的一组需求描述,由常量和一组抽象方法组成.Java为了克服单继承的缺点,Java使用了接口,一个类可以实现一个或多个 ...
- 20145213《Java程序设计》第四周学习总结
20145213<Java程序设计>第四周学习总结 教材学习内容总结 本周任务是学习面向对象的继承.接口以及之后的如何活用多态.(还真是路漫漫其修远兮啊!)教材也是延续上周艰深晦涩的语言风 ...
- 《Java程序设计》第四周学习总结
20145224-陈颢文 <Java程序设计>第四周学习总结 教材学习内容总结 第六章 继承与多态 ·继承就是面向对象中,子类继承父类,避免重复的行为定义.重复再程序设计上是非常不好的信号 ...
- 20155304 2016-2017-2 《Java程序设计》第四周学习总结
20155304 2016-2017-2 <Java程序设计>第四周学习总结 教材学习内容总结 第六章 继承: 概念: 面向对象中,为避免多个类间重复定义共同行为.(简单说就是将相同的程序 ...
- 201521123038 《Java程序设计》 第四周学习总结
201521123038 <Java程序设计> 第四周学习总结 1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 1.通过 ins ...
- 201521123061 《Java程序设计》第四周学习总结
201521123061 <Java程序设计>第四周学习总结 1. 本章学习总结 (1)思维导图: --- (2)上课内容总结: 第四周学习了Java中的继承与多态,思维导图中已经给出了本 ...
- 20175204 张湲祯 2018-2019-2《Java程序设计》第四周学习总结
20175204 张湲祯 2018-2019-2<Java程序设计>第四周学习总结 教材学习内容总结 -第五章子类与继承要点: -子类与父类: 1.通过使用关键字extends来定义一个类 ...
- 20175314 《Java程序设计》第四周学习总结
20175314 <Java程序设计>第四周学习总结 教材学习内容总结 每个子类只能有一个父类,而一个父类可以有多个子类.可以使用关键字extends来定义一个类的子类:class 子类名 ...
- 20155312 张竞予 2006-2007-2 《Java程序设计》第四周学习总结
20155312 2006-2007-2 <Java程序设计>第四周学习总结 课堂笔记 Ctrl+shift+T调出三个窗口,分别是"vi编写代码","jav ...
- 20165318 2017-2018-2 《Java程序设计》第四周学习总结
20165318 2017-2018-2 <Java程序设计>第四周学习总结 IDEA安装 按照娄老师Intellj IDEA 简易教程,我下载了IDEA但是由于没有注册学校邮箱,我没办法 ...
随机推荐
- TensorFlow 常用函数与方法
摘要:本文主要对tf的一些常用概念与方法进行描述. tf函数 TensorFlow 将图形定义转换成分布式执行的操作, 以充分利用可用的计算资源(如 CPU 或 GPU.一般你不需要显式指定使用 CP ...
- 优秀的电商平台Jshop栗子
摘录自:https://blog.csdn.net/chenjun9205/article/details/52412503 下载源代码 git clone https://git.oschina.n ...
- jQuery使用(十三):工具方法
proxy() onConflict() each() map() parseJson() makeArray() proxy() $.proxy()的实现机制与原生javaScript中的bind( ...
- ACM-ICPC 2018 沈阳赛区网络预赛 K Supreme Number(规律)
https://nanti.jisuanke.com/t/31452 题意 给出一个n (2 ≤ N ≤ 10100 ),找到最接近且小于n的一个数,这个数需要满足每位上的数字构成的集合的每个非空子集 ...
- [物理学与PDEs]第4章第3节 一维反应流体力学方程组 3.2 一维反应流体力学方程组的 Lagrange 形式
1. 一维粘性热传导反应流体力学方程组的 Lagrange 形式 $$\beex \bea \cfrac{\p \tau}{\p t'}-\cfrac{\p u}{\p m}&=0,\\ \ ...
- shell1
shebang = sharp-bang = #! 1.echo $PATH export PATH="$PATH:/home/user/bin" PREPEND prepend( ...
- visual studio code运行时报错,Cannot find module 'webpack'
前言 今天运行是visual studio code时,报了一个错误Cannot find module 'webpack' ,网上找了很多方法都没解决.下面一起来看看怎么解决 正文 报错: npm ...
- 一文掌握 Linux 性能分析之内存篇
本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. 前面我们已经学 ...
- C++的一些小Tip
string转数字: 一种是转换为char*后再使用atoi:atoi(s.c_str()).这个方法的神奇之处在于,如果s是负数也能顺利转化,但是,在leetcode显示,自己先判断是不是负数的话计 ...
- 深度学习在graph上的使用
原文地址:https://zhuanlan.zhihu.com/p/27216346 本文要介绍的这一篇paper是ICML2016上一篇关于 CNN 在图(graph)上的应用.ICML 是机器学习 ...