201771010113 李婷华 《面向java对象程序设计(Java)》第四章学习总结
一. 理论知识部分
第四章 对象与类
本章主要讲述面向对象程序设计、如何创建标准Java类库中的类对象、如何编写自己的类。
1.面向对象程序设计的几个主要概念:
抽象数据类型、类和对象、封装、类层次(子类)、继承性、多态性。
2.类:具有相同属性和行为的一组对象的集合。
3.实例域:对象中的数据。
4.方法:操纵数据的过程。
5.对象的三个主要特性:
对象的行为、对象的状态、对象标识。
6.类之间的关系:
依赖:最明显、最常见的关系。
聚合:一种具体易于理解的关系。
继承:一种用于表示特殊与一般关系的。
7.预定义类:Math类、math类、String类、Scanner类。
8.构造器是一种特殊的方法,用来构造并初始化对象。构造器的方法名与类名相同。
9.构造一个Date对象,需要在构造器前面加上new操作符。
10.Date类中有一个toString方法。将返回日期的字符串描述。
11.LocalDate类封装了实例域来维护所设置的日期。
12.GregorianCalendar类的setTime方法,用来设置日历对象所表示的时间点。
二. 实验部分
1、实验目的与要求
(1) 理解用户自定义类的定义;
(2) 掌握对象的声明;
(3) 学会使用构造函数初始化对象;
(4) 使用类属性与方法的使用掌握使用;
(5) 掌握package和import语句的用途。
2、实验内容和步骤
实验1 测试以下程序,掌握文件输入输出程序设计技术(文件输入输出,教材61-62).
实验代码:
import java.io.*;
import java.util.*;
public class WriteReadFileTest {
/**
* @param args
* @throws FileNotFoundException
*/
public static void main(String[] args) throws FileNotFoundException {
//写入文件演示
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;//行号
while(in.hasNextLine()){//判断扫描器是否还有下一行未读取,该循环把文件的每一行都读出
String line = in.nextLine();//读出myfile.txt的下一行
System.out.println("第"+(number++)+"行的内容" +"="+line);
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:
编辑、编译、调试运行程序4-2(教材104页);
结合程序运行结果,掌握类的定义与类对象的用法,并在程序代码中添加类与对象知识应用的注释;
尝试在项目中编辑两个类文件(Employee.java、 EmployeeTest.java ),编译并运行程序。
参考教材104页EmployeeTest.java,设计StudentTest.java,定义Student类,包含name(姓名)、sex(性别)、javascore(java成绩)三个字段,编写程序,从键盘输入学生人数,输入学生信息,并按以下表头输出学生信息表:
姓名 性别 java成绩
代码:
import java.util.*;
/**
* This program test the student class
* version 1.00 2018-09-24
* @author Litinghua
*/
public class StudentTest {
public static void main(String[] args) {
Student[] id=new Student[4];
System.out.println("请输入学生:");
Scanner in=new Scanner(System.in);
for(int i=0;i<id.length;i++)
{
id[i]=new Student(in.next(),in.next(),in.nextInt());
}
System.out.println("姓名"+" "+"性别"+" "+" "+"java成绩");
for(Student e:id)
System.out.println(e.getName()+" "+e.getSex()+" "+e.getJavascore());
}
}
class Student
{
private String name;
private String sex;
private int javascore;
public Student(String n,String s,int sc) {
name=n;
sex=s;
javascore=sc;
}
public String getName()
{
return name;
}
public String getSex()
{
return sex;
}
public int getJavascore()
{
return javascore;
}
}
运行结果:

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

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

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

测试程序5:
编辑、编译、调试运行程序4-6、4-7(教材135);
结合程序运行结果,理解程序代码,掌握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.*;
import java.lang.*;
/**
* This program can get it's perimeter.
* version 1.00 2018-9-25
* @author Litinghua
*/
public class test {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
System.out.println("请输入长方形的length与width:");
int length=in.nextInt();
int width=in.nextInt();
Rectangle x=new Rectangle(length,width);
System.out.println("长方形的周长"+x.getPerimeter());
System.out.println("长方形的面积"+x.getArea());
System.out.println("请输入圆的半径radius:");
int radius=in.nextInt();
Circle y=new Circle(radius);
System.out.println("圆的周长"+y.getPerimeter());
System.out.println("圆的面积"+y.getArea());
System.out.println("长方形和圆的周长和:"+(x.getPerimeter()+
y.getPerimeter()));
System.out.println("长方形和圆的面积和:"+(x.getPerimeter()+
y.getArea()));
}
}
class Rectangle
{
private int length;
private int width;
public Rectangle(int l,int w)
{
length=l;
width=w;
}
public int getPerimeter()
{
int Perimeter=(length+width)*2;
return Perimeter;
}
public int getArea()
{
int Area=length*width;
return Area;
}
}
class Circle
{
private int radius;
double PI=3.14;
public Circle(int r)
{
radius=r;
}
public double getPerimeter()
{
double Perimeter=2*PI*radius;
return Perimeter;
}
public double getArea()
{
double Area=PI*radius*radius;
return Area;
}
}
结果:

3.实验总结:
通过本次实验,我理解了类与对象的基本概念,理解了如何去创建一个类,通过亲自编写代码、老师讲解代码,我更加清晰地了解了类与对象的概念以及他们之间的关系。但是在实验的过程中,依然遇到点问题,总的来说对实验的熟悉程度不够,第一个实验做完过了一段时间又忘了如何去操作,认真的反思一下,要想学好这门课,还是需要进行大量的代码编写,不断的在实验中找出错误并改正错误。在平时的学习中阅读代码是很有必要的,只有在大量阅读代码的过程中才能不断学习,才能写出更多的代码。
201771010113 李婷华 《面向java对象程序设计(Java)》第四章学习总结的更多相关文章
- 《码出高效:Java开发手册》第四章学习记录,内容想当的多,前后花了几天的时间才整理好。
<码出高效:Java开发手册>第四章学习记录,内容想当的多,前后花了几天的时间才整理好. https://naotu.baidu.com/file/e667435a4638cbaa15eb ...
- 《Java程序设计》第四章-认识对象
20145221<Java程序设计>第四章-认识对象 总结 教材学习内容总结 类与对象 定义:对象是Java语言中重要的组成部分,之前学过的C语言是面向过程的,而Java主要是面向对象的. ...
- 2016-2017-2 20155339《 java面向对象程序设计》实验四Android程序设计
2016-2017-2 20155339< java面向对象程序设计>实验四Android程序设计 实验内容 1.Android Stuidio的安装测试: 参考<Java和Andr ...
- java对象与java对象引用的区别
java对象与java对象引用的区别 对象与对象引用的区别 直接用例子说话吧 Person per = new Person("张三"); 这一条语句,其实包括了四个动作: 右边的 ...
- “全栈2019”Java多线程第三十四章:超时自动唤醒被等待的线程
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- Spring实战第四章学习笔记————面向切面的Spring
Spring实战第四章学习笔记----面向切面的Spring 什么是面向切面的编程 我们把影响应用多处的功能描述为横切关注点.比如安全就是一个横切关注点,应用中许多方法都会涉及安全规则.而切面可以帮我 ...
- 201771010113 李婷华《面向对象程序设计(Java)》第十二周总结
一.理论知识部分 1.Java的抽象口工具箱( Abstract WindowToolkit, AWT)包含在java.awt包中,它提供了许多用来设计GUI的组件类和容器类. 2.AWT库处理用户界 ...
- 201771010113 李婷华 《面向对象程序设计(java)》第九周总结
一.理论知识部分 第六章 接口与内部类 1.内部类(innerclass)是定义在一个类内部的类.外层的类成为外部类(outerclass).内部类主要用于事件处理. 2.使用内部类的原因有以下三个: ...
- 201771010113 李婷华 《面向对象程序设计(java)》第七周学习总结
一.理论知识学习部分 1.动态绑定:又称为运行时绑定.程序在运行时会自动选择调用哪个方法. 2.静态绑定:如果方法是private.static.final修饰的,或者是构造器,那么编译器能准确地判断 ...
随机推荐
- AJ学IOS 之CoreLocation指南针小应用
AJ分享,必须精品 一:效果图示 简单的用到CoreLocation获取方位做的指南针小应用 二:制作思路 具体用到了CoreLocation相关的知识,请看上一篇博客有写 然后获取方向不需要进行授权 ...
- IdentityServer4 QuckStart 授权与自定义Claims
最近在折腾IdentityServer4,为了简单,直接使用了官方给的QuickStart示例项目作为基础进行搭建.有一说一,为了保护一个API,感觉花费的时间比写一个API还要多. 本文基于ASP. ...
- 13.create-react-app 构建的项目使用代理 proxy
1. 正常运行 npm run eject 2. create-react-app 的版本在低于 2.0 的时候可以在 package.json 增加 proxy 配置, 配置成如下: "p ...
- Jmeter--Plugins Manager安装及常用的插件介绍
jmeter 客户端 内置的插件管理工具Plugins Manager 1.下载地址:https://jmeter-plugins.org/install/Install/ 2.将下载的文件拷贝的你的 ...
- [PHP][thinkphp5] 学习二:路由、配置调用、常量定义调用
路由: 其实TP5就是一个集多家框架所长而成的,感觉失去了自己的特色!路由这块呢类似于laravel框架!废话不说直接上码! 路由配置,类似laravel,就在route.php文件里配置路由(文件所 ...
- [数据库]Mysql蠕虫复制增加数据
将查询出来的数据插入到指定表中,例: 将查询user表数据添加到user表中,数据会成倍增加 insert into user(uname,pwd) select uname,pwd from use ...
- golang依赖管理
目录 使用GOPATH管理依赖 临时GOPATH 依赖查找路径 使用GOVENDER管理依赖 使用GO111MODULE管理依赖 Usage 常用命令列表 不常用命令 使用示例 开启GO111MODU ...
- java实现自定义哈希表
哈希表实现原理 哈希表底层是使用数组实现的,因为数组使用下标查找元素很快.所以实现哈希表的关键就是把某种数据类型通过计算变成数组的下标(这个计算就是hashCode()函数 比如,你怎么把一个字符串转 ...
- 数值计算方法实验之Newton 多项式插值(MATLAB代码)
一.实验目的 在己知f(x),x∈[a,b]的表达式,但函数值不便计算或不知f(x),x∈[a,b]而又需要给出其在[a,b]上的值时,按插值原则f(xi)=yi (i=0,1,……, n)求出简单函 ...
- Python - 生成随机验证码的3种实现方式
生成6位随机验证码的3种实现方式如下: 1. 简单粗暴型:所有数字和字母都放入字符串: 2. 利用ascii编码的规律,遍历获取字符串和数字的字符串格式: 3. 引用string库. 方法1代码: i ...