201871010121-王方《面向对象程序设计(Java)》第四周学习总结
项目 |
内容 |
这个作业属于哪个课程 |
https://www.cnblogs.com/nwnu-daizh/ |
这个作业的要求在哪里 |
https://www.cnblogs.com/nwnu-daizh/p/11552848.html |
作业的学习目标 |
|
第一部分 第四章基础知识
(一)类与对象的基础概念
- 什么叫类?
类是构造对象的模板和蓝图,类是一种抽象的数据类型(类是对对象的抽象)。
类之间的关系:
依赖:如果一个类的方法操纵另一个类的对象,就说一个类依赖于另外一个类。
聚合:聚合关系意味着类A的对象包含类B的对象。
继承:通过扩展一个类来建立另外一个类的过程。
2.什么是对象?
对象,指的是在内存上一段有意义的区域,称作为一个对象。对象是对客观事物的抽象在C中,具有特定长度的类型,可以称作为对象类型,例如函数不具有特定长度,所以不是对象类型。
对象的三个主要特征:
行为:可以对对象施加哪些操作或方法?
状态:当施加方法时对象会如何回应?
标识:如何辨别具有相同行为与状态的不同对象?
3.类与对象的关系是什么?
它们的关系是,对象是类的实例,类是对象的模板。对象是通过new className产生的,用来调用类的方法;类的构造方法。由类构造对象的过程称为创建类的 实例。
- 使用预定义类:
在Java中已经接触的类:scanner类,string类,main类,Math类。例如Math类在程序中可以使用Math.random,而且 只需要知道方法名和参数就行,不需要了解它的具体实现过程。
4.对象与对象变量
(1)要想使用对象,就必须先构造对象,并制定其初始状态,然后对对象应运方法。使用构造器构造新实例。构造器拿是一种特殊的方法,用来构造并初始化对象。
(2)构造器的名字应与类名相同。
(3)想要构造一个对象,要在构造器前面加上new操作符,例如构造一个Date对象为: new Date() 这个表达式构造了一个新的对象。
(4)通常希望构造的对象可以多次构造。
(5)一个对象变量并没有实际包含一个对象,而仅仅应用一个对象。任何对象变量的值都是对存储在另一个地方的一个对象的引用。
5.用户自定义类:
(1)类的定义包括声明和类体,而类体又包括实体域定义和方法定义;
(2)域是指我们常说的字段,或者说是属性。包括实例域和局部变量;
(3)实例的隐藏性:实例域域局部变量的名字相同时,实例域的名字被隐藏。
6.静态域域静态方法:
(1) 静态域:属于类不属于任何独立的对象。
(2) 静态常量:在Java中比较常用的静态常量是System.out。
(3) 静态方法:静态方法是一种不能对对象试试操作的方法。可以认为静态方法是没有this参数的方法。
(4) Main方法:不需要使用对象调用静态方法。Main方法不对任何对象进行操作。静态的main方法将执行并创建程序所需要的对象。
7.方法参数:
Java程序设计语言总是采用按值调用,也就是说,方法得到的是所有参数值的一个拷贝,特别是,方法不能修改传递给它的任何参数变量的内容。
Swap方法的参数X和Y被初始化为两个对象引用的拷贝。
8.对象构造
(1)重载:如果多个方法有相同的名字,不同的参数,便产生了重载。编译器必须挑选出具体执行哪个方法,它通过用各个方法给出的参数类型与特定方法调用所使用的值类型进行匹配来挑选相应的方法。如果编译器找不到相应的参数,就会产生编译错误。
9.包:Java允许使用包将类组织起来。标准的Java包具有一个层次结构。使用包的小狐妖原因是确保类名的唯一性。嵌套的包间没有任何的联系性。
(1)类的导入:第一种方式是在每个类名之前添加完整的包名。(可以使用import语句导入特定的类或者整个包)
(2)可以导入一个包中特定的类。
(3)Import语句不仅可以导入类,还增加了导入静态方法和静态域的功能。
(4)将类放入包中
(5)包不是封闭的实体。
(6)类的路径必须与包名匹配。
(7)注释的插入 a)包 b)共有类与接口 c)共有的和受保护的构造器的方法 d)共有的和受保护的域
(8)类注释必须放在import语句之后,类定义之前。
10.类设计技巧
(1) 一定要保证数据私有
(2) 一定要对数据初始化
(3) 不要在类中使用过多的基本类型
(4) 不是所有的域都需要独立的域访问器和域更改器
(5) 将职责过多的类进行分解
(6) 类名和方法名要能够体现出他们的职责
(7) 优先使用不可变的类
第二部分 实验部分
实验三 类与对象的定义和使用
1.实验的目的与要求
(1) 熟悉PTA平台线上测试环境;
(2) 理解用户自定义类的定义;
(3) 掌握对象的声明;
(4) 学会使用构造函数初始化对象;
(5) 使用类属性与方法的使用掌握使用;
(6) 掌握package和import语句的用途。
2.实验的步骤与内容
实验1 采用个人账号登录https://pintia.cn/,使用绑定码620781加入PTA平台NWNU-2019CST1教学班(西北师范大学 计算机科学与工程学院 2018级计算机科学与技术),完成《2019秋季西北师范大学面向对象程序设计程序设计能力测试1》,测试时间50分钟。
实验1.1
公民身份证号码按照GB11643—1999《公民身份证号码》国家标准编制,由18位数字组成:前6位为行政区划分代码,第7位至14位为出生日期码,第15位至17位为顺序码,第18位为校验码。从键盘输入1个身份证号,将身份证号的年月日抽取出来,按年-月-日格式输出。注意:输入使用Scanner类的nextLine()方法,以免出错。
输入样例:
34080019810819327X
输出样例:
1981-08-19
实验截图如下:
实验2.2
studentfile.txt文件内容是某班同学的学号与姓名,利用此文件编制一个程序,将studentfile.txt文件的信息读入到内存,并提供两类查询功能:(1)输入姓名查询学号;(2)输入学号查询姓名。要求程序具有友好人机交互界面。
编程建议:
(1)从文件中读入学生信息,可以编写如下函数:
public static void StudentsFromFile(String fileName))
(2)输入姓名查找学生学号,可以编写如下函数:
public static String findStudent(String name)
(3)输入学号查找学生姓名,可以编写如下函数:
public static String findStudent(String ID)
运行截图如下 用泛性列表
用对象数组
实验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成绩
截图如下 emplomee.java
EmployeeText.java
按一下表头输出信息
姓名 性别 java成绩
测试程序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包的定义及用法,在相关代码后加注释;
实验总结
(1)通过这次实验我们在很大程度上了解了类与对象的概念以及相互关系。经过老师细致的分析,我们也比较了Java跟C语言的区别和联系,也强化了我们对C语言知识的理解。
(2)我们还学习了用户自定义与使用预定义,学习了对象与对象变量的知识,不过可能是刚开始学习偶很多细节的知识还需要我们去经过大量的实验好好研究。
(3)在实验过程中我有好几次出现运行错误的情况,大多问题都是出现在不注意细节,以后一定会加强练习。
201871010121-王方《面向对象程序设计(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但是由于没有注册学校邮箱,我没办法 ...
- 20172325 2016-2017-2 《Java程序设计》第四周学习总结
20172325 2016-2017-2 <Java程序设计>第四周学习总结 教材学习内容总结 1.对类.对象.声明变量的定义和属性有了进一步的了解 2.学会如何编写一个类并运用到需要的程 ...
随机推荐
- [POI2011]Lightening Conductor(决策单调性)
好久没写过决策单调性了. 这题其实就是 $p_i=\lceil\max\limits_{j}(a_j-a_i+\sqrt{|i-j|})\rceil$. 拆成两边,先只考虑 $j<i$,然后反过 ...
- 使用ipop共享串口提高工作效率
串口登录后,点击共享连接 然后在另外一台电脑,使用Telnet打开共享的串口(两台电脑需要可以网络连接) IP地址为对端IP地址,端口号为对端设置的端口号,点击连接即可
- MySQL基础指令和安装
数据库概念 那Mysql能干嘛呢?它就是一款软件,安装在任何一台计算机或者服务器上的时候,只要我告诉它创建一个文件,新增一个数据,删除一个数据它就能帮我去做想要的操作 那我们暂且能不能理解为mysql ...
- JVM学习笔记1
1.运行时数据结构 2.堆分代 3.垃圾收集器 Parallel Scavenge收集器:新生代称为PSYoungGen,老年代称为ParOldGen,永久代称为Metaspace ParNew收集器 ...
- 明解C语言 入门篇 第六章答案
练习6-1 /* 求两个整数中的最小值 */ #include <stdio.h> /*--- 返回三个整数中的最小值 ---*/ int min2(int a, int b) { int ...
- Windows 配置网络文件夹映射
mklink /D D:\temp\pythonmxds2 \\192.168.190.186\bigdata\kaoyanmxds
- 基于FlexBox的无约束自适应
全手打原创,转载请标明出处:https://www.cnblogs.com/dreamsqin/p/11972664.html,多谢,=.=~ 一.背景描述 对于通用型带过滤条件的列表查询项目中, ...
- Jackson 序列化/反序列化时忽略某属性
https://www.iteye.com/blog/wwwcomy-2397340 博客分类: Spring jacksonread_onlyjsonignore 基于Spring MVC的RES ...
- 1 Python命令行参数(脚本神器)
#!/usr/bin/env python3.7 # -*- coding:utf-8 -*- # Author: Lancer 2019-09-02 10:07:21 import sys,geto ...
- JavaScript学习思维导图
JS基本概念 JS操作符 JS基本语法 JS数组 JS Date用法 JS 字符串用法 JS编程风格 JS实践