苏浪浪 201771010120 第四周 Java基本程序设计总结
第四章 对象与类
学习目标
- 掌握类与对象的基础概念,理解类与对象的关系;
- 掌握对象与对象变量的关系;
- 掌握预定义类的基本使用方法,熟悉Math类、String类、math类、Scanner类、LocalDate类的常用API;
- 掌握用户自定义类的语法规则,包括实例域、静态域、构造器方法、更改器方法、访问器方法、静态方法、main方法、方法参数的定义要求;(重点、难点)
- 掌握对象的构造方法、定义方法及使用要求;(重点)
- 理解重载概念及用法;
- 掌握包的概念及用法;
- 了解文档注释技术
理论知识总结
第四章主要介绍面向对象的两个基本成分中最重要的-------封装,以及Java语言实现封装的机制即:类与方法;其主要内容如下:
1、面向对象程序设计:
简称OOP是当今主流的程序设计范型;旨在在计算机程序中模拟现实世界中的概念;能够在计算机中用类似的实体模拟现实世界中的实体;踏实设计和实现软件的方法。
类:是具有相同属性和行为的一组对象的集合;是构造程序的基本单元。
每个类有一组结构化的数据和在其上的操作组成。
对象:变成的一个核心概念,未开发计算机应用程序提供技术基础;用来表现现实世界中的实体。
三大特性:(1)对象的行为,(2)对象的状态,(3)对象的标识;
识别类的简单规则:再分析问题的过程中寻找名词,而方法对应着动词
2、使用预定义类:
(1)对象与对象变量
*一个对象变量并没有实际包含一个对象,而仅仅引用一个对象。
(2)Java类库中的LocalDate类
位于Java。Time包中
3、用户自定义类
(1)Employee类
(2)隐士参数和显示参数
(3)基于类的访问权限
(4)final实力域
4、静态域与静态方法
(1)静态域
(2)静态常量
(3)静态方法
(4)工厂方法
(5)main方法
5、方法参数
6、对象构造
(1)重载
(2)默认域初始化
(3)显示域初始化
(4)参数名·
(5)初始化块
7、包
(1)类的导入
(2)静态导入
(3)包作用域
8、类路径
9、文档注释
(1)类注释
(2)方法注释
(4)域注释
(4)通用注释
(5)包与概述注释
实验部分
1、实验目的与要求
(1) 理解用户自定义类的定义;
(2) 掌握对象的声明;
(3) 学会使用构造函数初始化对象;
(4) 使用类属性与方法的使用掌握使用;
(5) 掌握package和import语句的用途。
2、实验内容和步骤
实验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成绩

2
import java.util.Scanner; /**
* This program tests the Student class.
* time 2018 9 23
* @author 小浪浪
*/
public class 信息
{
public static void main(String[] args)
{
// fill the staff array with three Employee objects
int x=2;
Employee[] staff = new Employee[x];
System.out.println("请输入学生的姓名"); Scanner in = new Scanner(System.in);
for(int i=0;i<staff.length;i++) {
staff[i]=new Employee(in.next(),in.next(),in.nextInt());
}
System.out.println("name"+" "+"sex"+" "+" "+"javascore"); // print out information about all Employee objects
for (Employee e : staff)
System.out.println(e.getName() +" "+e.getSex()+" "+e.getJavaScore());
}
} class Employee
{
private String name;
private String sex;
private int javascore; public Employee(String n, String s, int m)
{
name = n;
sex = s;
javascore =m;
} 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) 将两个对象的周长加总输出,将两个对象的面积加总输出。
代码如下:
package 小浪浪; import java.math.BigDecimal;
import java.util.Scanner; class BBB {
public static void main(String[] args) { Scanner sc = new Scanner(System.in);
System.out.println("请输入长方形的长:");
int length = sc.nextInt();
System.out.println("请输入长方形的宽:");
int width = sc.nextInt();
System.out.print("请输入圆的半径: ");
float radius=sc.nextFloat(); AAA x = new AAA(); x.setLength(length);
x.setWidth(width);
x.setRadius(radius);
System.out.println("周长是:"+x.getPerimeter());
System.out.println("面积是:"+x.getArea());
System.out.println("圆的周长为-->"+x.getPerimeter(radius)+"\n"+"圆的面积为-->"+x.getArea(radius));
BigDecimal bd1 = new BigDecimal(x.getPerimeter(radius));
BigDecimal bd2 = new BigDecimal(x.getArea(radius));
BigDecimal bd3 = new BigDecimal(x.getPerimeter());
BigDecimal bd4 = new BigDecimal(x.getArea());
BigDecimal bd5 = bd1.add(bd3);
BigDecimal bd6 = bd2.add(bd4);
bd5= bd5.setScale(2, BigDecimal.ROUND_HALF_UP);
bd6= bd6.setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println("周长和:"+bd5+"\n"+"面积和"+bd6);
}
}
package 小浪浪; import java.util.Scanner;
import java.math.BigDecimal; class AAA{
private int length;
private int width;
float radius; public AAA(){} public void setLength(int length) {
this.length = length;
} public void setWidth(int width) {
this.width = width;
} public int getPerimeter() {
return (length + width) * 2;
} public int getArea() {
return length * width;
} public void setRadius(float radius) {
BigDecimal bd = new BigDecimal(radius);
radius = bd.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();
this.radius = radius;
} public float getPerimeter(float radius){
BigDecimal bd = new BigDecimal(radius);
radius = bd.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();
return (float) (radius*2*3.14);
} public float getArea(float radius){
BigDecimal bd = new BigDecimal(radius);
radius = bd.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();
return (float) (radius*radius*3.14);
}
}
实验结果:

本周总结:
1、通过本周的学习以及自己课后的复习掌握了类与对象的基础概念,理解了类与对象的关系;掌握对象与对象变量的关系以及预定义类的基本使用方法,熟悉Math类、String类、math类、Scanner类、LocalDate类的常用API;也知道了用户自定义类的语法规则,包括实例域、静态域、构造器方法、更改器方法、访问器方法、静态方法、main方法、方法参数的定义要求;同时知道 了对象的构造方法、定义方法及使用要求;掌握包的概念及用法;
2、通过实验熟悉了本章所学的知识以及察觉到了自己的不足;经过反思也学到了许多东西;
+
苏浪浪 201771010120 第四周 Java基本程序设计总结的更多相关文章
- 苏浪浪 201771010120 《面向对象程序设计(java)》第七章学习总结
第七周 1.实验目的与要求 (1)进一步理解4个成员访问权限修饰符的用途: (2)掌握Object类的常用API用法: (3)掌握ArrayList类用法与常用API: (4)掌握枚举类使用方法: ( ...
- 苏浪浪 201771010120 第三周 Java基本程序设计总结
理论知识: Java有五种语句: (1)方法调用语句(2)表达式语句(3)复合语句(4)控制语句(5)package.import语句 3.8控制流程 3.9大数值 *如果基本的整型和浮点型数据无法达 ...
- 201771010120 苏浪浪 《面向对象程序设计(java)》第二周学习总结
理论知识总结 第三章Java基本程序设计结构 1.基本知识:(1)标识符:是由字母.下划线.美元符号和数字组成,且第一个符号不能为数字.(2)关键字:剧啊语言中被赋予特定意义的一些单词.(3)注释 2 ...
- 第四周java学习总结
学号 20175206 <Java程序设计>第四周学习总结 教材学习内容总结 第五章主要讲的是主类与继承 本章主要介绍了:封装.继承.多态的关系:抽象类与接口的区别:各种关键字的类与方法: ...
- 20145212《Java程序程序设计》课程总结
20145212<Java程序程序设计>课程总结 一.每周读书笔记链接汇总 第一周读书笔记 第二周读书笔记 第三周读书笔记 第四周读书笔记 第五周读书笔记 第六周读书笔记 第七周读书笔记 ...
- 20145223《Java程序程序设计》课程总结
20145223<Java程序程序设计>课程总结 每周读书笔记链接汇总 第一周学习总结 第二周学习总结 第三周学习总结 第四周学习总结 第五周学习总结 第六周学习总结 第七周学习总结 第八 ...
- java基础学习03(java基础程序设计)
java基础程序设计 一.完成的目标 1. 掌握java中的数据类型划分 2. 8种基本数据类型的使用及数据类型转换 3. 位运算.运算符.表达式 4. 判断.循环语句的使用 5. break和con ...
- 实验二 Java面向对象程序设计
实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计 ...
- 20145212《Java程序设计》实验报告二 《 Java面向对象程序设计》
20145212 实验二< Java面向对象程序设计> 实验内容 单元测试 三种代码 伪代码 百分制转五分制: 如果成绩小于60,转成"不及格" 如果成绩在60与70之 ...
随机推荐
- Linux系统管理第五六七章 权限及归属管理 磁盘管理 文件系统与lvm
第五六七章 alias 查看系统别名 67 chmod 设置文件或目录的权限 -R表示以递归的方式设置目录及目录下的所有子目录及文件的权限 u:属主 g:属组 o:其他人 a:所有人 +:添加 ...
- Vue 2.x折腾记 - (17) 基于Ant Design Vue 封装一个配置式的表单组件
前言 写了个类似上篇搜索的封装,但是要考虑的东西更多. 具体业务比展示的代码要复杂,篇幅太长就不引入了. 效果图 2019-04-25 添加了下拉多选的渲染,并搜索默认过滤文本而非值 简化了渲染的子组 ...
- json序列化字符串后,配置枚举类型显示数值而不是名称
2019独角兽企业重金招聘Python工程师标准>>> 经常有这么一个需求,实体类里面用到枚举常量,但序列化成json字符串时.默认并不是我想要的值,而是名称,如下 类 @Data ...
- 深入理解Mysql——锁、事务与并发控制
本文对锁.事务.并发控制做一个总结,看了网上很多文章,描述非常不准确.如有与您观点不一致,欢迎有理有据的拍砖! mysql服务器逻辑架构 每个连接都会在mysql服务端产生一个线程(内部通过线程池管理 ...
- python实现二分叉查找
*二分叉查找就是折半查找 比如12345这几个数字当中找2,他会先找到这五个数字中的中坚的那个与2进行比较,比如中间的3>2他就认为3以后的不用查找了,然后查找3左边的,即123,再把这个分半, ...
- MySQL - Show Global Status 整理
2019独角兽企业重金招聘Python工程师标准>>> MySQL - Show Global Status 整理 原文来源:MySQL 5.5 Reference Manual 部 ...
- 面向对象第四单元(UML)总结
OO第四单元 一.总结本单元两次作业的架构设计 第一次作业 架构 第一次作业只有类图,所以全部的UmlElement都可以放在MyUmlInteraction中进行存储.计算和查找.对于类图来说,可以 ...
- nginx经验分享
如果我们在使用启动nginx时,遇到这样的提示: nginx: [alert] could not open error log file: open() "/usr/local/var/l ...
- C++编程入门--No.6
题目:用*号输出字母C的图案. 程序分析:可先用'*'号在纸上写出字母C,再分行输出. #include <bits/stdc++.h> using namespace std; int ...
- 2019年广东工业大学腾讯杯新生程序设计竞赛(同步赛)E-缺席的神官
链接:https://ac.nowcoder.com/acm/contest/3036/E 来源:牛客网 题目描述 面前的巨汉,让我想起了多年前的那次,但这个巨汉身上散布着让人畏惧害怕的黑雾.即使看不 ...