徐思201771010132《面向对象程序设计(java)》第三周学习总结
一、理论知识部分
第一章:Java是一种具有简单性、面向对象、分布式、 健壮性、安全性、体系结构中立、可移植性、解 释型、高性能、多线程、动态性的语言。
第二章:Java 源程序是以• Java为后缀的文本文件,可以用各种 Java集成 开发环境中的源代码编辑器来编写,也可以用文本编辑工具来编写。
如果源文件中有多个类,那么只能有一个类是public类。 如果有一个类是public类,那么源文件的名字必须与这个类的 名字完全相同。 源程序文件的扩展名是.java。 如果源文件没有public类,那么源文件的名字只要和某个类的 名字相同,并且扩展名是.java就可以了。
译后生成目标文件(8位的ASCII码文件)。而Java程序中源代 码经编译生成的目标码为 两个字节的 字节码 (16位) 。
字节码文件是二进制文件。编译字节码需要使用专用的Java 编译器,在集成化的Java开发环境中,只要选择一个菜单命 令或单击一个按钮就可以完成这个编译过程。而在JDK命令 行开发工具中则需要运行独立的编译程序。
– 字节码不能直接运行在一般的操作系统平台上, 而必须运行在称为“Java 虚拟机”的在操作系统 之外的软件平台上。运行Java程序时首先应该启 动这个虚拟机,然后由它来解释、执行Java 的字 节码文件。 – 利用Java 虚拟机就可以把Java 字节码程序跟具 体的软、硬件平台分隔开来。
首先要用Java的编译器对Java的源程序进行 编译,产生字节码文件。 javac MyJavaApplication.java 。Java应用程序是由独立的解释器程序来运行的, 在JDK 软件包中,用来解释执行Java应用程 序字节码的解释器程序为 java MyJavaApplication。
任何一个Java 程序都是由若干个类定义组成的。 类体中通常有两种组成成分(称为类的成员) 一种是域,包括变量、常量、对象数组等独立的实体; 另一种是方法,是类似于函数的代码单元块。
方法体部分是由若干以分号结尾的语句组成的并由 一对大括号括起来,注意:方法体内部不能再定义 其他的方法。
任何一个Java应用程序方法必须有而且只能有一个 main方法,并且这个方法的方法头必须按照下面的格 式来书写: public static void main(String args [ ]) 。第6句是方法的方法体,其中System 是系统内部定义 的一个系统对象;out 是System 对象中的一个域,也 是一个对象;println是 out对象的一个方法,它的作 用是向系统标准输出设备输出其形参指定的字符串, 并回车换行。
Java Applet 中不需要有main 方法。 Java Applet要求有一个类是系统类applet 的子类, 即必须有一个类的类头部分以 extends Applet 结尾。 其中 extends 表明新定义的类是它后面跟着的已经存 在的父类的子类;Applet 是父类名。
第三章:标识符由字母、下划线、美元符号和数字组成, 且第一个符号不能为数字。
Java共有8种基本类型 – 整数类型(int、short、long、byte) – 浮点类型(float、double) – 字符类型 (char) – 布尔类型(boolean )
Java中没有unsigned类型 。
Java提供的一个特别运算符 :new这是一个用来创建对象的运算符。 Java另外一个特别运算符 Instanceof 返回一个布尔值来指出某个对象是否是一个特定类或 者是它的子类的一个实例。
大多数的数值转换是遵循优先级的关系自动完成的。 转换原则如下: 如果两个操作数中有一个是double类型的,则另一个将 会转换成double类型。 否则,如果两个操作数中有一个是float类型的,另一个 将会转换成float类型。 否则,如果两个操作数中有一个是long类型的,另一个 将会转换成long类型。 否则,两个操作数都将转换成int类型。
程序中需要用到的字符串可以分为两大类: – 创建之后不会再做修改和变动的不可变字符串String类; – 创建之后允许再做更改和变化的构建字符串StringBuilder类。
注意case子句后的break!!
数组使用之前要确定大小,可以在程序中根据需要动 态生成数组(如用表达式计算出大小)。 一旦生成数组,大小不可改变。Java不支持变长数组。 数组的属性—length : 数组元素的个数。 Java中的数组作为一种对象类型,可以作为方法的参 数,方法调用时传的是指向数组的引用。 ArrayIndexOutOfBoundsException 异常。
二、实验部分
1、实验目的与要求
(1)进一步掌握Eclipse集成开发环境下java程序开发基本步骤;
(2)熟悉PTA平台线上测试环境;
(3)掌握Java语言构造基本程序语法知识(ch1-ch3);
(4)利用已掌握Java语言基本程序设计知识,学习设计开发含有一个主类、类内可有多个方法的应用程序。
2、实验内容和步骤
实验1:采用个人账号登录https://pintia.cn/,使用邀请码588329加入PTA平台NWNU-2017NISE教学班(西北师范大学 计算机科学与工程学院 2017级 网络与信息安全),完成《2018秋季西北师范大学面向对象程序设计(Java)(ch1-ch3)测试题1》,测试时间120分钟;
实验2:公民身份证号码按照GB11643—1999《公民身份证号码》国家标准编制,由18位数字组成:前6位为行政区划分代码,第7位至14位为出生日期码,第15位至17位为顺序码,第18位为校验码。从键盘输入1个身份证号,将身份证号的年月日抽取出来,按年-月-日格式输出。注意:输入使用Scanner类的nextLine()方法,以免出错。
输入样例:
34080019810819327X
输出样例:
1981-08-19
代码如下:
package Frist;
import java.util.Scanner;
public class Frist {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("请输入你的身份证号:");
String ID=in.nextLine();
String year=ID.substring(6, 10);
String month=ID.substring(10,12);
String day=ID.substring(12,14);
System.out.println("你的生日:"+year+"-"+month+"-"+day);
System.out.println("Good luck!");
}
}
实验3: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)
package Class;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Class {
public static void main(String[] args) {
int i, j;
String a;
BufferedReader str = new BufferedReader(
new InputStreamReader(System.in));
System.out.println("请输入学号:");
a = str.readLine();
System.out.println("学号为:" + a);
str = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入姓名:");
a = str.readLine();
System.out.println("姓名为:" + a);
}
}
实验总结:
通过这次小测试,发现自己很多问题,对之前知识的掌握并不是很好,对编程也不太会,之前的学习不是很扎实。通过对之前知识的回顾与复习,查漏补缺,对Java进一步的了解。这次小测试的结果并不是很理想,以后需要花更多的时间学习Java,更好的掌握Java知识。这次实验开始自己编写程序,对程序的编写毫无头绪,通过查阅资料及和同学讨论,最终解决问题。