JAVA面向对象-学习笔记

JAVA面向对象-学习笔记
JAVA面向对象-学习笔记

JAVA面向对象

面向对象编程三本基本特点:封装继承多态

Object Oriented Programming[oop 面向对象编程]

面向对象编程思想中有两个非常重要的概念,类,对象

一类

所谓的类,就是类型,数据类型,相对于我们学的基本数据类型,包含的内容要更丰富类似于c#中的struct。我们可以根据需求自己定义数据类型【类】。

class 类名

{

//成员变量属性

数类型名变量名1;

数类型名变量名2;

数类型名变量名3;

//成员方法行为

方法的返回值类型方法名1(必要的参数) {

}

方法的返回值类型方法名2(必要的参数) {

}

.......

}

二对象

类类型的变量就是对象

类名变量名=new 类名();该变量名即为对象

因为该对象是属于某个类,所以,变量名点点可以调出该类的所有内容

每个对象拥有自己的成员变量和成员方法

三关于设计类需要注意

1 Java是面向对象编程语言,所有的内容必须都放在一个类里面

2 每个文件可以有多个类,但只能有一个类是public,并且文件名必须和

public类的类名一样。jvm会为每个类生成一个字节码文件*.class

最好一个文件一个类。

3 通常会把main函数放在一个单独的类里面,作为整个项目的启动类

4 成员变量如果不赋值有默认值,对数值类型默认值是0,boolean类型默认值为

false,对于所有的类类型默认值为null

对于局部变量没有默认值,需赋值后才可以使用

*方法的重载和构造方法

一方法的重载method overload

在一个类中定义多个方法名相同,参数不同的方法。这些方法之间

就构成了重载不能根据方法的返回值区分不同的方法

二构造方法

在一个类中定义方法名和类名相同,并且该方法没有返回值,也不能放void。这样的方法就叫构造方法

1 构建一个类的对象时候(new ),一定会调用构造方法

2 一个类一定有构造方法,如果不明确设置则系统会为我们提供给一个无参的构造方法,如果明确定义构造方法,则系统就不会为我们提供构造方法。

3 构造方法也支持方法的重载,即一个类中可以有多个构造方法。

4 构造方法中一般放一些初始化的操作

5 构造方法之间可以互相调用

this(必要的参数);

注意该语句必须是构造方法的第一条语句

*this使用、访问修饰符、数据类型

一this使用

this:表示当前这个类的一个引用【对象】。

1 当局部变量【在方法里面定义的变量包括形参】和成员变量【在方法外定义的变量】同名的时候,在方法中局部变量会覆盖掉

成员变量,如果想使用成员变量必须用[this.变量名] 这种方式

2 构造方法之间可以互相调用方法是在构造方法的第一条语句中加this(必要的参数)

二访问修饰符

控制类里面的成员变量或成员方法能在那里被访问

在java中一共有四种访问修饰符

默认private protected public

1 private 私用的

可以用在成员变量或成员方法前表示该变量或方法只能被当前的类所访问2 public 公有的

可以用在成员变量或成员方法前表示该变量或方法能被所有的类所访问3 在设计一个类的时候,通常成员变量都是private,成员方法都是public

如果在类的外面想使用成员变量则必须提供对应的公有的方法

public 成员变量的数据类型getXxx()

{

return xxx;

}

public void setXxx(成员变量的数据类型xxx)

{

this.Xxx=xxx;

}

这样的做的理由有三个

3.1 可以设置成员变量是只读,只写等访问权限

3.2 可以控制为成员变量付一些合法期望的值

3.3 这样的成员变量有一些特殊的功能javabean【后面会讲】

三数据类型

java中的数据类型分两种一种基本数据类型【8种】一种是引用数据类型【类】

类:分两种,一种是系统给我们提供的类,第二种根据需求自己定义的类。但是无论

使用那一种类语法和含义都是一样的。

都是new出来,都要产生对象。系统给我们提供的类大约有四千左右,并且随着jdk版本的跟新,系统中的类越来越多,以满足我们的开发需求。为了方便使用这些类,系统中的所有类都分门别类的放在不同的包【和操作系统中的文件夹类似】中。比如

所有有关图像界面的类都放在java.awt.* javax.swing.*所有常见的工具类都放在java.util.*,比如所有文件操作用到的类都放在

java.io.*;

*栈与堆、产生一个对象、java中方法调用、java的垃圾自动回收

一栈(stack)与堆(heap)

都是指的内存,但是这两块内存存储数据的性能是不一样。

1 栈空间(stack)

存储在栈空间的数据,处理速度比堆空间处理速度快,仅次于寄存器的处理速度。但是存储在栈空间的数据大小和生存期必须是

已知的,缺乏灵活性

2 堆空间(heap)

存储在堆空间的数据,处理速度比栈空间处理速度慢,。但是存储在堆空间的数据大小和生存期不需要已知,所以灵活性要高

栈和堆空间都是jvm自动管理,不能通过程序干预。所有基本数据类型数据【8种】都是直接被存储在栈空间中。所有的引用数据类型

数据都存储在两个地方,产生的对象(new出来的)被存储在堆空间中,把代表该对象的一个地址存储在栈空间中。

二产生一个对象的具体操作

int x=1;

Person ps=new Person();

1 调用构造方法

2 在堆空间中构建该对象[new Person()]

3 把代表该对象的地址放在栈空间中【即变量名ps】

ps:引用地址句柄

三java中方法调用

1 传数值调用

如果方法的形参是基本数据类型【8种】,属于传数值调用。在被调方法中不会改变主调方法的实参值

2 传地址调用

如果方法的形参是引用数据类型【类new】,属于传地址调用。在被调方法中会改变主调方法的实参值

四java的垃圾自动回收

垃圾:指的的对象,没有任何句柄指向的对象就叫垃圾

jvm会在必要的时候清除这些无用的垃圾对象,一个对象被jvm清除时候会自动调用一个方法,该方法叫

析构方法该方法叫finalize()

也可以明确让jvm清除系统中的垃圾对象System.gc();

*匿名对象、static静态的

一匿名对象

没有句柄引用的对象叫匿名对象

比如

new Person();

new Person().print();

二static 静态的

用在成员变量或成语方法前,表示该变量或方法属于这个类特有的,而不具体属于某个对象,即

无论是否产生对象,无论产生多少对象,在内存中都只有一个static的变量或方法注意

1 访问静态的内容

对象名.静态内容;

类名.静态内容;//建议这样访问

2 static内容不属于面向对象的范畴,因为它不需要产生对象就能使用。

3 如果一个方法不需要访问成员变量或其它的成员方法,为了方便调用可以把方法设置成静态的

如果一个成员变量的值是固定的【常量】,或者成员变量在任意一个对象值都一样,则可以把该变量设置成static

4 在static方法中不能直接使用成员变量或成员方法,只能直接使用static的变量或

方法。反之不然

在成员方法中可以直接使用static变量或方法

*继承

一产生一个类对象的执行流程

1 把类文件*.class 加载到内存中

2 定义出所有的类【static】变量

3 定义出所有的成员变量

4 调用构造方法

5 把对象在堆空间的首地址,付给栈空间的变量

Person ps=new Person();

二继承

在原有类的基础上设计一个新类的过程就叫继承,引入继承后,类和类之间就具有一些

层次关系,

这种层次关系能增加程序的灵活性。

class 类A extends 类B

{

}

类A:子类,基类

类B:父类,超类

注意

1 java里面只支持单继承,即一个类只能有一个父类,但是一个类可以有多个子类。

2 java中,为所有的类设计祖先了Object,即所有的类都是Object类的直接或间接子类。

3 private内容,构造方法,不被继承

4 在子类的构造方法中,一定会调用父类的构造方法,如果不明确调用,则系统会自动调用父类无参的构造方法,如果父类没有无参数的构造方法,程序会发生错误。也可以利用super(必要的参数);明确调用父类的某一个构造方法,这时系统将不会再调用父类无参数构造方法。

5 super用法

this:表示当前类的一个引用

super:表示父类的一个引用

super有两种情况必须使用super

5.1 super(必要的参数),在子类的构造方法中调用父类的构造方法注意必须是第一条语句

5.2 当子类和父类定义了同名的成员变量或成员方法,在子类中如果想访问父类的内容必须用

super.变量或super.方法

6 方法的复写override[方法的重载overload]

在子类中定义和父类方法名相同参数相同返回值也相同的方法就构成了方法的复写

7 判断是否能使用继承的标准时,看两个类之间在逻辑上是否满足is-a 是一个

*数据类型转换、多态

一数据类型转换

1 基本数据类型之间转换

1.1 自动转换

double x=2+'a';

1.2 强制转换

int x=(int)1.5;

2 引用数据类型之间的转换

Person p1=new Person();

Person p2=p1;

2.1 自动转换

两个类之间如果具有继承关系,子类对象付给父类的变量如果class Student extends Person{}

Student st=new Student();

Person ps=st;//Student is-a ok

Person ps=new Student() //ok

Student st1=new Person(); //err

class Employee extends Person {}

Person ps=new Employee(); //ok

Employee e=new Employee();

2.2 强制转换

如果一个父类的变量【引用】中存储的是某个子类的对象,则可以把该变量强制转换成该子类的数据类型,以调用子类里面更多的功能。如果父类中存储的不是子类对象则转换时

编译不报错,运行时候报错。

Person ps=new Student();

((Student)ps).study();

值instanceof 类名[接口名] 如果值属于该类或值实现了该接口则返回true 否则返回false

二多态(polymorphism)

字面意思:"多种状态",一个父类的变量可以付其任意子类的对象,在运行时候,可以自动匹配调用

对应子类对象里面的相应方法。这种思想可以为我们编程带来如下好处

1 不必为某个具体的子类编写方法调用,以不变应万变

2 可以提前调用某个子类的方法,增加了程序的可扩充性

*final、异常

一final关键字的使用

最终的,不变的

1 用在局部变量前面该变量只能付一次值,付完后改值将不能被改变了包括形式参数也可以使用final。

2 用在成员变量前,表示该变量只能付一次值,要么在定义的时候赋值要么在所有的构造方法中赋值.如果成员变量是static的,必须定义同时初始化该final变量的值

public static final 类型的常量名建议每个字母都大写

3 用在方法前表示该方法不能被复写override

4 用在类前面表示该类不能被继承[String 类是final的不能被继承]

一个final类中的所有方法默认都是final的

abstract类不能是final的

二异常

程序在运行的时候发生的一些非致命的错误,叫异常。

处理异常的执行原理

java中针对每种错误定义一个类描述,程序运行过程中,一旦发生了某种错误,jvm 会自动产生该种错误类的对象抛出来,如果有catch语句捕获该对象,则程序会进入catch 语句执行相应处理代码,执行完毕后继续向下运行。如果没有catch语句捕获该对象程序将立刻意外终止。

小学数学二年级下册第一单元长度单位

第一课时统一长度单位 预习题: 一测量数学课本,铅笔盒、回形针的长。(不提示测量工具)二用回形针测量数学课本的宽,用小刀测量文具盒的长。 课堂练习 必做题 一 橡皮 直尺大约()个长; 橡皮大约()个长; 铅笔大约()个长;

长方体大约()个长。 选做题 二 分别用不同的测量工具测量课桌的长度,例如橡皮、铅笔、文具盒等。 思考题 三 为什么用不同的工具所测出的课桌长度不同。

第二课时认识厘米用厘米量 必做题 一量一量,将答案填在()里。 ()厘米()厘米 ()厘米 ()厘米()厘米 二 三量出下面图形每边的长度.

四填空. (1)24厘米+17厘米=()厘米 (2)72厘米-27厘米=()厘米 (3)1米=()厘米 (4)45米+36米=()米 (5)2米+50厘米=()米()厘米 (6)在直线上点两点,这两点间的一段叫(). 选做题 一我估计我的铅笔盒长()厘米,用尺量铅笔盒的长是()厘米。 二

思考题 一请你画一条3厘米长的线段。再画一条比2厘米长比9厘米短的线段。 二测量课桌面长的时候,要把尺子的()刻度寻准课桌左端,再看课桌面的右端的数对准(),课桌面的长度就是()厘米。 三画一条8厘米长的线段,从尺子的()刻度开始画起,画到()的地方。

第三课时认识米用米测量 必做题 一填空。 1、1米=()厘米 2、量比较长的物体,可以用()做单位,量比较短的物体, 可以用()做单位。 3、在下面的()里填上合适的单位。 高40()厚约5() 高1()22()高70() 二量一量。 我的手掌宽约()厘米。我的一拃长()厘米。 我的身高是()厘米。我的一步长()厘米。 三 14米+6米○20米4厘米+20厘米○3米 3米○30厘米50厘米○49厘米 38厘米-8厘米○40厘米35厘米+5厘米○4米 100厘米-1米○1厘米

面向对象程序设计—文本编辑器的设计与实现

课程设计报告书 课程名称面向对象程序设计 设计题目文本编辑器的设计与实现 专业班级 学号 姓名 指导教师 年月

目录 1 设计时间 (1) 2 设计目的 (1) 3设计任务 (1) 4 设计内容 (1) 4.1需求分析 (1) 4.2概要设计 (1) 4.2.1功能结构图 (1) 4.3详细设计 (2) 4.3.1流程图 (3) 4.4系统的功能实现 (4) 4.4.1类或包的加载 (5) 4.4.2设计一个主类,变量的定义 (5) 4.4.3文件操作功能的实现 (6) 4.5运行测试 (25) 4.5.1文本编辑器界面 (25) 4.5.2各功能菜单界面 (25) 5 总结与展望 (26) 参考文献 (26) 成绩评定 (27)

1 设计时间 2011年12月19日~2011年12月25日 2 设计目的 本次设计是学习完《java6程序设计》课程后进行的一次全面的综合练习,目的是加深对本学期课程的理解,通过设计文本编辑器并实现其功能来熟练掌握java语言基础,初步掌握软件开发的基本方法与技术将理论课程中学到的知识运用到实践中,实现有一定规模的Java应用。 3设计任务 本次设计的主要任务是文本编辑器的设计与实现,要求设计一个类似于Windows记事本(Notepad)的Java程序。可以打开、新建、保存一个文本文件;对选中的文本进行各种编辑操作(设置字体、字号、字型、对齐方式、背景、前景色、复制、粘贴、剪切、查找、替换等);在文本中能够插入对象。 4 设计内容 4.1需求分析 现在网络上各种文本编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed,xint 。功能也是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的文本编辑器程序。 4.2概要设计 4.2.1功能结构图

最新JAVA语言与面向对象程序设计课后习题答案

1 第1章面向对象软件开发概述 2 1.简述面向过程问题求解和面向对象问题求解的异同。试列举出面向对象和面向3 过程的编程语言各两种。 4 答:面向过程问题求解,以具体的解题过程为研究和实现的主体,其思维特点更5 接近于计算机;面向对象的问题求解,则是以“对象”为主体,“对象”是现实世6 界的实体或概念在计算机逻辑中的抽象表示,更接近于人的思维特点。 7 面向过程的编程语言:C,Pascal, Foratn。 8 面向对象的编程语言:C++, Java,C#。 9 2.简述对象、类和实体及它们之间的相互关系。尝试从日常接触到的人或物中抽10 象出对象的概念。 11 答:面向对象技术中的对象就是现实世界中某个具体的物理实体在计算机逻辑中12 的映射和体现。类是同种对象的集合与抽象。类是一种抽象的数据类型,它是所有13 具有一定共性的对象的抽象,而属于类的某一个对象则被称为是类的一个实例,是14 类的一次实例化的结果。如果类是抽象的概念,如“电视机”,那么对象就是某一15 个具体的电视机,如“我家那台电视机”。 16 3.对象有哪些属性?什么是状态?什么是行为?二者之间有何关系?设有对象“学17 生”,试为这个对象设计状态与行为。 18

答:对象都具有状态和行为。 19 对象的状态又称为对象的静态属性,主要指对象内部所包含的各种信息,也就是20 变量。每个对象个体都具有自己专有的内部变量,这些变量的值标明了对象所处的21 状态。 22 行为又称为对象的操作,它主要表述对象的动态属性,操作的作用是设置或改变23 对象的状态。 24 学生的状态:姓名、性别、年龄、所在学校、所在系别、通讯地址、电话号码、25 入学成绩等; 26 学生的行为:自我介绍、入学注册、选课、参加比赛等。 27 4.对象间有哪三种关系?对象“班级”与对象“学生”是什么关系?对象“学生” 28 与对象“大学生”是什么关系? 29 答:对象间可能存在的关系有三种:包含、继承和关联。 30 对象“班级”与对象“学生”是包含关系。 31 对象“学生”与对象“大学生”是继承关系。 32 5.有人说“父母”和“子女”之间是继承的关系。这种说法是否正确?为什么? 33 答:“父母”和“子女”之间不是面向对象意义上的“继承”关系。因为这里的34

Java面向对象程序设计_习题解答

Java面向对象程序设计 清华大学出版社 (编著耿祥义张跃平) 习题解答 建议使用文档结构图 (选择Word菜单→视图→文档结构图)

习题1 1.James Gosling 2. (1)使用一个文本编辑器编写源文件。 (2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。 (3)使用J ava解释器(java.exe)运行Java程序 3.Java的源文件是由若干个书写形式互相独立的类组成的。 应用程序中可以没有public类,若有的话至多可以有一个public类。 4.系统环境path D\jdk\bin; 系统环境classpath D\jdk\jre\lib\rt.jar;.; 5. B 6.Java源文件的扩展名是.java。Java字节码的扩展名是.class。 7.D 8.(1)Speak.java (2)生成两个字节码文件,这些字节码文件的名字Speak.class 和Xiti8.class (3)java Xiti8 (4)执行java Speak的错误提示 Exception in thread "main" https://www.360docs.net/doc/5e4523186.html,ng.NoSuchMethodError: main 执行java xiti8得到的错误提示 Exception in thread "main" https://www.360docs.net/doc/5e4523186.html,ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8) 执行java Xiti8.class得到的错误提示 Exception in thread "main" https://www.360docs.net/doc/5e4523186.html,ng.NoClassDefFoundError: Xiti8/class 执行java Xiti8得到的输出结果 I'm glad to meet you 9.属于操作题,解答略。

Java面向对象编程练习题精编

J a v a面向对象编程练习 题精编 Lele was written in 2021

Java面向对象编程练习题 专题1 初识Java 一、填空题 1.自从Sun推出Java以来,按应用范围可分为三个版本,分别是(SE)、( EE )、( ME )。 2.环境变量的设置,若JDK安装在“D:\JDK”,则应设置 Path为()、classpath为()。 3.Java源文件的扩展名为(),用Javac编译Java源文件,得到的字节码文件的扩展名为()。 4.如果Java源文件中有多个类,那么只能有一个类是()类。 5.Java程序可以分成两类,即()和()。 二、选择题 1.作为Java应用程序入口的main方法,其声明格式是(B )A.public static int main(String args[]) B.public static void main(String args[]) C.public void main(String args[]) D.public int main(String args[]) 2.下面命令正确的是(B) A.java B.java AppFirst

C.java D.javac AppFirst 3.设有一个Java小程序,源程序名为,其class文件为,则 运行该小程序的命令为(B) A.java FirstApplet B.javac C.appletviewer D.appletviewer 4.JDK安装完成后,主要的命令如javac、java等,都存放在 根目录的(A)文件夹下。 A.bin B.jre C.include D.doc 5.Java语言是一种 D 语言。 A.机器B.汇编C.面向过程的D.面向对象的 6、Java程序的最基本组成单位是 D 。 A.函数B.过程C.变量 D.类 三、简答题(十分重要) 1.Java语言有哪些特点 跨平台、一种简单、面向对象、分布式、半编译半解释、健 壮、安全、多线程 2.JDK安装完成后,如何设置环境变量 Path 配置:

1、长度单位换算

一、单位换算公式 1、长度单位换算 1千米=1000米 1米=10分米1分米=10厘米 1米=100厘米1厘米=10毫米 2、面积单位换算 1平方千米=100公顷 1公顷=10000平方米 1平方米=100平方分米 1平方分米=100平方厘米 1平方厘米=100平方毫米 1亩=666.666平方米 3、体(容)积单位换算 1立方米=1000立方分米 1立方分米=1000立方厘米 1立方分米=1升 1立方厘米=1毫升 1立方米=1000升 4、重量单位换算 1吨=1000千克 1千克=1000克 1千克=1公斤 5、人民币单位换算 1元=10角 1角=10分 1元=100分 6、时间单位换算1世纪=100年 1年=12月 大月(31天)有:1\3\5\7\8\10\12 月 小月(30天)的有:4\6\9\11月 平年2月28天,闰年2月29天 平年全年365天,闰年全年366天 1日=24小时 1时=60分 1分=60秒 1时=3600秒 二、几何形体周长、面积、 体积公式 1、长方形的周长=(长+宽)×2 C=(a+b)×2 2、正方形的周长=边长×4 C=4a 3、长方形的面积=长×宽S=ab 4、正方形的面积=边长×边长 S=a.a=a 5、三角形的面积=底×高÷2 S=ah÷2 6、平行四边形的面积=底×高 S=ah 7、梯形的面积=(上底+下底)×高÷ 2 S=(a+b)h÷2 8、内角和:三角形的内角和=180 度 9、长方体的体积=长×宽×高 V=abh 10、长方体(或正方体)的体积=底 面积×高V=abh 11、正方体的体积=棱长×棱长× 棱长V=aaa 12、圆的直径=半径×2 d=2r 圆的半径=直径÷2 r=d÷2 13、圆的周长=直径×π L=πd=2πr 14、圆的面积=半径×半径×π S=πr2 15、圆柱的表(侧)面积:圆柱的表 (侧)面积等于底面的周长乘高。 S=ch=πdh=2πrh 16、圆柱的表面积:圆柱的表面积 等于底面的周长乘高再加上两头的 圆的面积。S=ch+2s=ch+2πr2 17、圆柱的体积:圆柱的体积等于 底面积乘高。V=Sh 18、圆锥的体积=1/3底面×积高。 V=1/3Sh 19、分数的加、减法则:同分母的分 数相加减,只把分子相加减,分母 不变。 20、异分母的分数相加减,先通分, 然后再加减。 21、分数的乘法则:用分子的积做 分子,用分母的积做分母。 22、分数的除法则:除以一个数等 于乘以这个数的倒数。 三、数量关系计算公式 1.单价×数量=总价 2.单产量×数量=总产量 3.速度×时间=路程 4.工效×时间=工作总量 四、算术定义定理公式 1.加法交换律:两数相加交换加数 的位置,和不变。 2.加法结合律:三个数相加,先把 前两个数相加,或先把后两个数相 加,再同第三个数相加,和不变。 3.乘法交换律:两数相乘,交换因 数的位置,积不变。 4.乘法结合律:三个数相乘,先把 前两个数相乘,或先把后两个数相 乘,再和第三个数相乘,它们的积 不变。 5.乘法分配律:两个数的和同一个 数相乘,可以把两个加数分别同这 个数相乘,再把两个积相加,结果 不变。 如:(2+4)×5=2×5+4×5。 6.除法的性质:在除法里,被除数

UML面向对象分析与设计

UML面向对象分析与设计 大作业 前言 “UML面向对象分析与设计”是计算机专业和软件工程等相关专业的一门重要课程,也是其他理工科专业的热门选修课程。“程序设计语言”、“计算机网络”、“数据库原理”和“数据机构”等是它的前导课程,学好本课程对学生毕业后从事软件开发有着极为重要的作用。 要学好这门课,仅仅通过课堂教学或自学掌握理论知识是远远不够的,还必须加强实践。特在学期末引入uml的综合分析与设计,从实际项目出发,使学生学会运用软件工程基本理论知识,UML建模语言和rose建模环境,去解决软件开发中的实际问题,达到学以致用的目的。

面向对象软件开发技术 项目的引入及需求 简易教学管理系统的分析、设计与实现 一、设计的目的 1.初步了解UML语言的概念、结构、语义与表示方法; 2.掌握UML建模工具Rational Rose的使用方法; 3.给出某个简单系统的模型,能够熟练地使用Rose工具表达; 二、设计理论基础 1. 面向对象的程序设计C++或JAVA程序设计课程; 2.数据结构或算法课程 2.SQLServer或mysql数据库系统; 3. 熟悉传统软件工程以及软件测试技术。 三、设计内容与步骤 需求陈述:简易教学管理系统主要提供两个方面的服务: 选课管理,负责新学期的课程选课注册。 成绩管理,负责学生成绩管理。 (1)简易教学管理系统---选课管理应提供的服务如下: 1.录入与生成新学期课程表 教学管理人员在新学期开学前录入新学期的课程,打印将开设的课程目录表,供师 生参考选择。如果某门课实际选课的学生少于10人,则停开该课程,把该课程从 课程表中删除;如某课程选课学生多于60人,则停止选课。 2.学生选课注册 新学期开始前一周为学生选课注册时间,在此期间学生可以选课注册,并且允许改 变或取消注册申请。 每个学生选课可不允许超过4门,每门课最多允许60名学生选课注册。 3.查询 可以查询课程信息、学生选课信息和学生、教师信息。

面向对象试题(答案)

CoreJavaOOP考试题 考试时间:90分钟 考试总分:100分 一、选择题(不定项选择)(22*4=88) 1. 类A,B的定义如下: class A { private int a = 100; A() { System.out.print("A()"); System.out.println(a); } } class B extends A { private int a = 200; B() { System.out.print("B()"); System.out.println(a); } } 运行下面的代码: new B(); 输出的结果是:(A )。 A. A() 100 B() 200 B. A() 200 B() 200 C. B() 200 A() 100 D. B() 200 A() 200

2.下列说法正确的是(D ) A.所有类都必须定义构造方法(构造器) B.构造方法必须初始化类的所有数据成员 C.子类定义了构造器后,不再调用父类的构造器 D.构造方法可以访问类的非静态成员 3.在Java中,哪个关键字使类不能派生子类?, (A ) A : final B : public C : private D : native 4.class Base{ static void test(){ System.out.println(“Base.test()”); } } public class Child extends Base{ static void test(){ System.out.println(“Child.test()”); } public static void main(String[] args){ Base base = new Child(); Child child = new Child(); base.test(); child.test(); } } 程序运行的结果是( C ) A.Child.test() Child.test() B.Child.test() Base.test() C.Base.test() Child.test() D.Base.test() Base.test()

JAVA面向对象基础测试题,继承,封装,多态等测试题

JAVA面向对象基础测试题 提示:本题为第一阶段,JAVA面向对象基础部分练习题,包括对象,类,继承,封装,多态,接口,内部类等等,java核心基础,适合初学者对面向对象基础的知识进行测试,以便查漏补缺。 1. 程序执行的结果是:()。 01 public class Point{ 02 int y = 7; 03 public void step(int y) { 04 y += y; 05 System.out.println(y); 06 } 07 public static void main(String[] args) { 08

Point p = new Point(); 09 p.step(10); 10 } 11 } A.14 B.20 C.10 D.17 正确答案:B解析: 2. 程序的执行结果是:()。 01 public class Question { 02 private int num; 03 public static void main(String [] args){ 04 Question q = new Question();

05 q.num=13; 06 update(q); 07 System.out.println(q.num); 08 } 09 public static void update(Question q){ 10 q.num=9; 11 } 12 } A.13 B.9 C.0 D.4 正确答案:B解析: 3.

程序执行的结果是:()。 01 public class Answer { 02 public static void main(String[] args) { 03 int score = 20; 04 Answer ans= new Answer(); 05 ans.add(score); 06 System.out.println(" main:score = " + score); 07 } 08 void add(int score) { 09 System.out.println(" add:score=" + score++); 10 } 11

长度单位换算(一)

长度单位换算(小学三年级上册北师大版) 需要记得:千米>米>分米>厘米>毫米 1米=10分米倒过来 1分米=0.1米1分米=10厘米倒过来 1厘米=0.1分米 1厘米=10毫米倒过来 1毫米=0.1厘米 一、大单位到小单位(用乘法) 1、千米换成米,乘以1000(后面加三个0)。例:3千米=3000米。2千米= 米 8千米= 米 16千米= 米 50千米= 米 125千米= 米 250千米= 米 2、米换成分米,乘以10。 3米= 分米 6米= 分米 18米= 分米 75米= 分米 150米= 分米 200米= 分米

3、分米换成厘米,乘以10。4分米= 厘米 9分米= 厘米 15分米= 厘米 18分米= 厘米 125分米= 厘米 180分米= 厘米 4、厘米换成毫米,乘以10。3厘米= 毫米 6厘米= 毫米 18厘米= 毫米 21厘米= 毫米 100厘米= 毫米 150厘米= 毫米 5、米换成厘米,乘以100。 4米= 厘米 25米= 厘米 48米= 厘米 100米= 厘米 336米= 厘米 6、分米换成毫米,乘以100。4分米= 毫米 25分米= 毫米 48分米= 毫米 100分米= 毫米

336分米= 毫米 7、米换成毫米,乘以1000。 2米= 毫米 8米= 毫米 16米= 毫米 50米= 毫米 125米= 毫米 250米= 毫米 8、混合转化练习(米、分米、厘米、毫米) (1) 2米3分米= 分米 8米6分米= 分米 16米7分米= 厘米 50米5分米= 厘米 125米8分米= 毫米 250米9分米= 毫米 (2) 9米6厘米= 厘米 15米18厘米= 厘米 18米75厘米= 毫米 360米18厘米= 毫米 (3) 8米4毫米= 毫米 16米8毫米= 毫米 18米9毫米= 毫米 240米120毫米= 毫米

java面向对象试卷及答案

java面向对象程序设计 系班级姓名成绩得分评卷人 一、填空题(每空2分,共20分) 1.Java源程序的扩展名是,经过编译后的程序的扩展名是。2.Socket通常也称为,用于描述和。3.线程的优先级在至之间,数值越大 4.构造方法是一种特殊的成员方法,构造方法名与相同 5.Java语言只允许单继承,指每个类只能有一个。 二、选择题(每题2分,共50分) 1.下列哪个概念是面向对象和面向过程程序设计所共有的() A、继承 B、流程控制 C、抽象 D、封装 2.以下关于执行Java小程序的论述错误的是:() A、可以通过浏览器调用嵌入了Java小程序的HTML文档 B、可以通过appletviewer.exe调用嵌入了Java小程序的HTML文档 C、可以通过java.exe调用嵌入了Java小程序的HTML文档 D、可以在Java集成开发环境中调用嵌入了Java小程序HTML文档 3.符合对象和类关系的是:() A、人和老虎 B、书和汽车 C、楼和土地 D、松树和植物 4.关于选择结构下列哪个说法正确?() A.if语句和else语句必须成对出现 B.if语句可以没有else语句对应 C.一个if语句只能有一个else if语句与之对应 D.else if结构中必须有default语句 5.while循环和do…while循环的区别是:()

A.没有区别,这两个结构任何情况下效果一样 B.while循环比do…while循环执行效率高 C.do…while循环执行次数可能为0 D.while循环执行次数可能为0 6.关于for循环和while循环的说法哪个正确?() A.while循环先判断后执行,for循环先执行后判断。 B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换 D.两种循环结构中都必须有循环体,循环体不能为空 7.下列修饰符中与访问控制无关的是() A.private B.public C.protected D.final 8.方法内的形参:() A.必须定义多个形参B.可以没有 C.至少有一个D.只能是简单变量 9.throws的作用:() A.表示方法可能会抛出例外 B.表示后面是方法的输出量 C.方法的标志,每个方法都必须有 D.没有意义 10.在Java语言中,整型常量123占用的存储字节数是:()A.1B.2 C.4 D.8 11.关于对象成员占用内存的说法哪个正确?() A.同一个类的对象共用同一段内存 B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间C.对象的方法不占用内存 D.以上都不对 12.return语句:()

Java面向对象练习经典题

JA V A程序作业题 1、设计一个包含多个构造函数的类,并分别用这些构造函数实例化对象。 2、编写一个类Calculate1,实现加、减两种运算,然后,编写另一个派生类Calculate2,实现乘、除两种运算。 3、建立三个类:居民、成人、官员。居民包含身份证号、姓名、出生日期,而成人继承自居民,多包含学历、职业两项数据;官员则继承自成人,多包含党派、职务两项数据。要求每个类的字段都以属性的方式对外提供数据输入输出的功能。 4、编写一个类,其中包含一个排序的方法sort(),当传入的是一串整数,就按照从小到大的顺序输出,如果传入的是一个字符串,就将字符串反序输出。 5. 编写一个控制台应用程序,定义一个类MyClass,类中包含有public、private以及protected数据成员及方法。然后定义一个从MyClass类继承的类MyMain,将Main方法放在MyMain中,在Main方法中创建MyClass类的一个对象,并分别访问类中的数据成员及方法。要求注明在试图访问所有类成员时哪些语句会产生编译错误。 7.创建一个类包含有protected数据。在相同的文件里创建第二个类,用一个方法操纵第一个类里的protected数据 9 编写一个控制台应用程序,完成下列功能,并回答提出的问题。 1) 创建一个类A,在构造函数中输出“A”,再创建一个类B,在构造函数中输出“B”。 2) 从A继承一个名为C的新类,并在C内创建一个成员变量B。不要为C创建构造函数。 3) 在Main方法中创建类C的一个对象,写出运行程序后输出的结果。 4) 如果在C中也创建一个构造函数输出“C”,整个程序运行的结果又是什么? 10 编写一个控制台应用程序,完成下列功能,并写出运行程序后输出的结果。 1) 创建一个类A,在A中编写一个可以被重写的带int类型参数的方法MyMethod,并在该方法中输出传递的整型值加10后的结果。 2) 再创建一个类B,使其继承自类A,然后重写A中的MyMethod方法,将A中接收的整型值加50,并输出结果。 3) 在Main方法中分别创建类A和类B的对象,并分别调用MyMethod方法。 11. 创建一个类,它存储一个int数据成员MyNumber,并给该数据成员创建属性,当该数据成员被存储时,将其乘以100;当其被读取时,将其除以100。 12. 定义一个车辆(Vehicle)基类,具有Run、Stop等方法,具有Speed(速度)、MaxSpeed (最大速度)、Weight(重量)等字段。然后以该类为基类,派生出bicycle、car等类。并编

面向对象的分析设计实现--图书管理系统

实验报告面向对象的分析设计实现—图书管理系统 一.需求分析 1.1系统需求描述 一般图书馆管理系统主要用于对图书馆日常工作的管理,主要任务是用计算机对读者、图书等各种信息进行日常管理,如查询、修改、增加、删除、图书借阅和归还的管理等。本系统实现了图书馆的信息化管理,完成了图书馆管理系统的基本功能。 一般图书馆管理系统主要包括用户登录子系统、用户管理子系统、图书管理子系统、图书借阅与归还、图书和用户信息查询子系统四个部分,各部分主要功能如下: 用户登录子系统:用于数据库的连接,主界面的设计和不同身份用户的登录管理。 用户管理子系统:用于用户信息的管理,如用户添加、用户信息修改、用户删除。 图书管理子系统:用于图书信息的管理,如新书入库、图书信息修改、图书信息删除。 图书借阅与归还子系统:用于用户借阅和归还图书。 图书和用户信息查询:图书和用户信息的查询。 1.2系统功能结构图

图 1.1 图书管理系统分析系统流程图 1.3 系统解决方案 以上述一般的图书管理系统分析为构思原型。为简化系统,忽略掉其他复杂琐碎的功能需求,仅保留图书信息的录入、修改和读者借、续借、还的功能。读者与管理员通过界面对象调用控制类对象,控制对象进行各种操作并把信息写入数据库。 二.系统设计 2.1 系统E-R图 图 1.2 用户实体图

图1.3 书籍实体图 图 1.4 实体属性图 2.2数据库表结构 表2.1 图书信息表

表2.2 用户借阅表 表2.3用户信息表 2.3用例文档 本系统共设置四个活动者。分别是TT_People、TT_Registrar、TT_Reader 和TT_Database。其中TT_People泛指与系统发生关系的人;TT_Registrar为系统管理员,负责添加、修改图书信息;TT_Reader为所有读者,读者可能发生借书、续借、还书的行为;TT_Database为存储各种信息的数据库对象。另:考虑到现实图书馆中还存在“图书馆管理员”这一角色,但其所起的作用仅为代替读者完成各种系统操作,故没有设置此活动者。 系统中共有五个用例。TT_Addinfo、TT_Modifyinfo、TT_Borrow、TT_Renew 和TT_Return。TT_Addinfo表示管理员添加图书信息;TT_Modifyinfo表示修改图书信息;TT_Borrow表示读者借阅图书;TT_Renew表示读者续借图书;TT_Return表示读者归还图书。

面向对象程序设计java语言程序设计期末考试试题及部分答案

《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案2 一、单选择题(每小题2分,共10分) 1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。 A. .java B. .class C. .html D. .exe 2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( A )。 A. 3 B. 3. 5 C. 4 D. 5 3、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( D )方法来完成一些画图操作。 A. start( ) B. stop( ) C. init( ) D. paint( ) 4、不允许作为类及类成员的访问控制符的是( C )。 A. public B. private C. static D. protected 5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。 A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( ) 二、填空题(每空格1分,共20分) 1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码、和解释运行字节码。 2、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是Applet、类的子类并且存储该源程序文件的文件名为MyApplet。 3、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器javac.exe编译该源程序文件将产生3 个文件名与类名相同而扩展名为. class的字节码文件。

Java面向对象编程上机-练习题汇总

【练习题】类的成员变量: 猜数字游戏:一个类A有一个成员变量v,有一个初值100。定义一个类,对A 类的成员变量v进行猜。如果大了则提示大了,小了则提示小了。等于则提示猜测成功。 【练习题】类的成员变量: 请定义一个交通工具(Vehicle)的类,其中有: 属性:速度(speed),体积(size)等等 方法:移动(move()),设置速度(setSpeed(int speed)),加速speedUp(),减速speedDown()等等. 最后在测试类Vehicle中的main()中实例化一个交通工具对象,并通过方法给它初始化speed,size的值,并且通过打印出来。另外,调用加速,减速的方法对速度进行改变。 【练习题】类的成员变量与方法、构造方法 在程序中,经常要对时间进行操作,但是并没有时间类型的数据。那么,我们可以自己实现一个时间类,来满足程序中的需要。 定义名为MyTime的类,其中应有三个整型成员:时(hour),分(minute),秒(second),为了保证数据的安全性,这三个成员变量应声明为私有。 为MyTime类定义构造方法,以方便创建对象时初始化成员变量。 再定义diaplay方法,用于将时间信息打印出来。 为MyTime类添加以下方法: addSecond(int sec) addMinute(int min) addHour(int hou) subSecond(int sec) subMinute(int min) subHour(int hou) 分别对时、分、秒进行加减运算。 【练习题】构造方法 编写Java程序,模拟简单的计算器。 定义名为Number的类,其中有两个整型数据成员n1和n2,应声明为私有。编写构造方法,赋予n1和n2初始值,再为该类定义加(addition)、减(subtration)、乘(multiplication)、除(division)等公有成员方法,分别对两个成员变量执行加、减、乘、除的运算。 在main方法中创建Number类的对象,调用各个方法,并显示计算结果。 【练习题】构造方法: 编写Java程序,用于显示人的姓名和年龄。 定义一个人类(Person),该类中应该有两个私有属性,姓名(name)和年龄(age)。定义构造方法,用来初始化数据成员。再定义显示(display)方法,将姓名和年龄打印出来。

小学数学小学二年级上第一单元长度单位

统一长度单位。(教材第2页) 1.经历用不同标准测量同一物体时,测量的长度不相同的过程,体会建立统一长度单位的必要性。 2.学生在亲身经历活动的过程中,体会长度单位的形成过程,建立对人类已有数学知识的理解。 重点:使学生初步经历长度单位形成的过程,体会统一长度单位的必要性,知道长度单位的作用。 难点:让学生用自己的活动建立对人类已有数学知识的理解。 课件。 师:同学们,新学期开始我们又换新书了,谁知道我们的新书有多长呢? 学生可能会用拃量,可能会用铅笔量,还可能会用橡皮量,等等。不同的物品做标准测量结果不 相同。 【设计意图:从学生身边的物体出发,引导学生通过自己测量发现所用的标准不同,即使测量同一物体,结果也不相同,激发学生的探究兴趣和求知欲望】 师:同学们,你们知道古时候人们怎样测量长度吗? 课件出示:(1)人们平伸手臂测量石头的周长。 师:你觉得这样测量准确吗? 生1:不准确,大人和孩子的手臂长短不同,那么测量的结果就不相同了。 生2:不准确,即使都是大人或都是孩子,手臂的长短也不可能都相同,测量的结果也不相同。

生3:石头的周长是固定的,可是却因为人手臂长短的不同而出现不同的测量结果,所以这样测量的结果是不准确的。 师:是啊,同学们说得都很有道理。很久以前,人们就是这样用身体的一部分作为测量长度的单 位。你们看,像这样测量物体的长度仍是咱们现在常见的一些现象。 课件出示:(2)用拃作单位测量布的长度。 (3)用脚长作单位测量竹竿的长度。 (4)步测教室的长度。 【设计意图:使学生了解人们用身体的一部分作单位进行测量的不准确性,以及这种现象在生活中存在的普遍性,为学生学习估测解决生活中的实际问题做准备】 师:现在咱们就用拃作单位来量一量课桌的长,然后告诉大家你测量的结果。 组织学生汇报交流不同的测量结果,同时教师也用拃作单位量一量课桌的长,与学生测量的结果做对比。 师:你发现了什么? 学生可能会说:量的都是课桌的长,为什么结果不一样呢? 如果学生答不出来,教师就适当引导学生发现问题,进而探究:是啊,为什么量的都是课桌的长,结果却不同呢? 生:因为我们拃的长短本身就不一样。 师:是吗?咱们来比一比,看看拃的长短相同吗? 组织学生之间互相比一比,师生之间互相比一比,得出结论:长度单位不同,才导致测量同一物 体的结果不同。 师:这就需要我们统一长度单位,用一样的标准来测量物体才能更准确,这样尺子就应运而生了。尺子上用相同的长度表示一定的长度单位,标准统一,尺子便成了人们测量长度的工具。 【设计意图:在活动中使学生深刻感受到统一长度单位的必要性,经历数学知识的形成过程,激发学生探究数学问题的兴趣和求知欲望】 师:同学们,通过这节课的学习你知道怎样才能使每个同学测量出的结果都是相同的吗?(只有统一长度单位我们才能更准确地测量物体,得到相同的结果) 统一长度单位 错误!未找到引用源。

(完整版)面向对象程序设计与面向过程程序设计的区别(2)

面向过程程序设计和面向对象程序设计的区别 面向过程程序设计我个人的理解简单来说,他考虑问题的方式是面向流程的,一个程序的设计思路就是解决一个问题的流程。就好比游戏先登入界面,再输入密码,然后选择角色,在然后进入游戏玩耍,结束... .... 这把这些步样就是面向过程。面向过程就是分析出解决问题所需要的步骤,然后用函数骤一步调用就可以了一步实现,使用的时候一个一个依次。可以看出面向过程化程序设计是先确定算法,再确定数据结构。而面向对象程序设计是面向问题中的各种独立个体的,程序的析设分计过程就是将程序分解成不同对象(不同概念体)之间的交互的过程。这就好比在针对某个工程或游戏设计程序时先不考虑,游戏是怎么玩的,工作是怎么做的,而先会去找,游戏或工程中有哪些人或事物参与(一般选择:用户,玩家,角色等等),然后再看他们都有什么用,都干了些什么,针对这个区设计方法。最后在通过这些千丝万缕的联系把他们分门别类的,组装在一起。可以看出面向过程化程序设计是先确定数据结构再确定算法。 从上面很容易看出,面向过程的程序上一步和下一步环环相扣,他只考虑实现客户的需求不考虑以后扩展,如果以后客户的需求有变化那代码量要改变非常大耗费的时间也相当多。从本质上说,面向过程基本上是一种状态机,不利于修改,当新状态出现的时候,甚至可能需要重设每一个状态解决实现。所以说面向过

程是一种直接的编程方法,它是按照编程语言的思路考虑问题。尤其是想C语言这种过程式语言,它就是通过顺序执行一组语句来实现一个功能,这些语句的执行过程就是整个程序。不同的语言解决同一个问题的过程是不一样的。 而面向对象的程序设计很多东西都是独立的,每个对象都可以重复使用。而面向对象程序设计强调“封装”,“继承“和“多态”。数据和与数据相关的操作被包装成对象(严格的说是“类”),每一种对象是相对完整和独立的。对象可以有派生的类型,派生的类型可以覆盖(或重载)原本已有的操作。所有的这些,是为了达成更好的内聚性,即一种对象做好一件(或者一类相关的)事情,对象内部的细节外面世界不关心也看不到;以及降低耦合性,即不同种类的对象之间相互的依赖尽可能降低。而所有的这些,都有助于达成一个崇高的目标,就是可复用性。 下面举个例子来说明面向过程的程序和面向对象的程序设计的区别: 用面向过程的思想去考虑它应该是这样的:如何启动汽车、如何起步、加速、刹车、熄火等一个个操作。面向过程是把所有的功能全部在一个大的类里定义出来,当系统庞大时,功能多了,各种操作之间的调用关系也很复杂,当需要修改一个功能时就可能引发一连串的改动,使修改和维护成本增加,而不利于修改。 而面向对象则以汽车为对象,一切由汽车开始,以上的可用操

《面向对象程序设计JAVA语言程序设计》期末复习试题及部分答案

一、单选题 1.在下列概念中,Java语言只保留了D A.运算符重载B.结构和联合C.指针D.方法重载 2.下列类定义中,不正确的是B A.class x { .... } B.static class x implements y1,y2 { .... } C.public class x extends Applet { .... } D.class x extends y { .... } 3.下列语句序列执行后,k 的值是B int m=3, n=6, k=0; while( (m++) < (- - n) ) ++k; i++ 先把i的初值赋给表达式(i++),作为表达式(i++)的值,然后i自增1作为i 的值。 如i=1,则表达式(i++)的值等于1,而i的值变为2。 ++i i先自增1,再把自增后的值赋给表达式(++i)。 如i=1,则表达式(++i)的值等于2,i的值也为2, A.0 B.1 C.2 D.3 4.设i、j为int型变量名,a为int型数组名,以下选项中,正确的赋值语句是A A.a[0] = 7; B.i = i + 2 C.i++ - --j; D.a(0) = 66; 5.Java语言的类间的继承关系是B A.多重的B.单重的C.线程的D.不能继承 6.下列语句序列执行后,k 的值是C int i=10, j=18, k=30; switch( j - i ) { case 8 : k++; case 9 : k+=2; case 10: k+=3; default : k/=j; } A.31 B.3 C.2 D.33 7.设有定义 float x=3.5f, y=4.6f, z=5.7f;则以下的表达式中,值为true的是C

Java面向对象测试试题

《使用Java实现面向对象编程》阶段测试-笔试试卷 一、选择题(共25题,每题4分,满分100分) 1) 在Java类中,使用以下()声明语句来定义公有的int型常量MAX。 A. public int MAX = 100; B. final int MAX = 100; C. public static int MAX = 100; D. public static final int MAX = 100; 2) 在Java中,下列关于方法重载的说法中错误的是()。 A. 方法重载要求方法名称必须相同 B. 重载方法的参数列表必须不一致 C. 重载方法的返回类型必须一致 D. 一个方法在所属的类中只能被重载一次 3) 给定Java代码如下所示,在横线处新增下列()方法,是对cal方法的重载。 public class Test{ public void cal(int x, int y, int z) {} } A. public int cal(int x, int y, float z){ return 0; } B. public int cal(int x, int y, int z){ return 0; } C. public void cal(int x, int z){ } D. public void cal(int z, int y, int x){ } 4) 在Java中,下面对于构造函数的描述正确的是()。 A. 类必须显式定义构造函数 B. 构造函数的返回类型是void C. 构造函数和类有相同的名称,并且不能带任何参数 D. 一个类可以定义多个构造函数

相关文档
最新文档