搜档网
当前位置:搜档网 › java初级面向对象讲义

java初级面向对象讲义

java初级面向对象讲义
java初级面向对象讲义

Java初级知识教程大纲

1.面向对象思想

面向对象和面向过程都属于软件开发方法.早期软件编程是采用面向过程进行开发.随着计算机的发展,产生了面向对象开发方法

面向过程:是一种以过程为中心的编程思想,就是分析出解决问题所需要的步骤,然后函数把这些步骤一个个实现,使用的时候一个一个依次调用函数,从而实现需求.

面向对象:是一种以对象为中心的编程思想,就是将需求中涉及到的现实世界中的事物抽象成对象,然后通过对象来实现需求.

注意:面向对象是基于面向过程的.

面向对象思想引入

当有多个数组都需要遍历时,我们可以将遍历的代码封装到方法中,需要遍历时,就调用相应的方法即可,提高代码的复用性。在对数组遍历的基础上继续增加需求,比如获取最值,数值逆序等,同样需要将这些功能封装到相应的方法中。这样继续封装会发现方法越来越多,于是就想能不能将这些方法继续进行封装呢?

我们知道类是可以存放方法的,所以,我们就考虑使用类封装来这多个方法,将来再做数组的操作时,不用去找具体的方法,先找到这个类,然后使用这个类中的方法。

这就是面向对象思想的编程方式。

面向过程思想概述

我们来回想一下,这几天我们完成一个需求的步骤:首先是搞清楚我们要做什么,然后在分析怎么做,最后我们再代码体现。一步一步去实现,而具体的每一步都需要我们去实现和操作。这些步骤相互调用和协作,完成我们的需求。

在上面的每一个具体步骤中我们都是参与者,并且需要面对具体的每一个步骤和过程,这就是面向过程最直接的体现

那么什么是面向过程开发呢? 面向过程开发,其实就是面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然后由这些功能方法相互调用,完成需求。

面向过程的代表语言:C语言

面向对象思想概述

面向对象是基于面向过程的编程思想

面向对象思想特点

是一种更符合我们思想习惯的思想

可以将复杂的事情简单化

将我们从执行者变成了指挥者

角色发生了转换

举例:

买电脑:

面向过程:我的了解电脑--了解我自己的需求--找对应的参数信息--去中关村买电脑--讨价还价--买回电脑面向对象:我知道我要买电脑-- 班长去给我买-- 班长就买回来了

洗衣服:

面向过程:把衣服脱下--找一个盆--放点洗衣粉--加点水--把衣服扔进去--搓一搓--清洗衣服--拧干--晾起来面向对象:把衣服脱下--打开全自动洗衣机--扔进去--一键即可--晾起来

吃饭:

面向过程:去超市买菜--摘菜--洗菜--切菜--炒菜--盛起来--吃

面向对象:上饭店吃饭,你--服务员(点菜)--厨师(做菜)--服务员(

面向对象开发

就是不断的创建对象,使用对象,指挥对象做事情。

面向过程:

动作有哪些呢?

A:打开冰箱门

B:装进大象

C:关闭冰箱门

代码体现;

class Demo {

public static void main(String[] args) {

open();

in();

close();

}

public static void open() {

System.out.println("打开冰箱门");

}

public static void in() {

System.out.println("装进大象");

}

public static void close() {

System.out.println("关闭冰箱门");

}

}

面向对象:

我们怎么才能更符合面向对象思想呢?

A:有哪些类呢?

B:每个类有哪些东西呢?

C:类与类直接的关系是什么呢?

把大象装进冰箱的分析? (如何分析有哪些类呢?UML。名词提取法。) A:有哪些类呢?

大象

冰箱

Demo

B:每个类有哪些东西呢?

大象:

进去

冰箱:

开门

关门

Demo:

main方法

C:类与类直接的关系是什么呢?

Demo中使用大象和冰箱类的功能。

代码体现:

class 大象{

public static void in() {

System.out.println("装进大象");

}

}

class 冰箱{

public static void open() {

System.out.println("打开冰箱门");

}

public static void close() {

System.out.println("关闭冰箱门");

}

}

class Demo {

public static void main(String[] args) {

冰箱调用开门

大象调用进去

冰箱调用关门

}

}

面向对象设计

其实就是在管理和维护对象之间的关系。

面向对象:

1.更加符合人类看待事物的思想.

2.面向过程解决的是当前问题,面向对象解决的是长远问题,更加方便系统/软件的维护和扩展.

面向对象: Java Ruby 等等

面向对象特征

封装(encapsulation)

继承(inheritance)

多态(polymorphism)

我们学习编程语言,就是为了模拟现实世界的事物,实现信息化。比如:去超市买东西的计费系统,去银行办

业务的系统。

现实世界中是如何描述一个事物的呢?

所有语言都是为了服务于人类,解决人们日常生活中的问题.java是一种面向对象的编程语言,可以将现实中的所有事物以对象的方式进行模拟和分析,从而服务于人类.

举例:学生

姓名,年龄,性别...

学习,吃饭,睡觉

属性就是该事物的描述信息

行为就是该事物能够做什么

我们学习的Java语言最基本单位是类,所以,我们就应该把事物用一个类来体现

对象:人们要进行研究的任何事物都可以作为Java对象.

对象可以是具体的事物,也可以是抽象的规则、计划或事件等。(万物皆对象)

如何模拟现实对象:现实对象含有静态特征(颜色,温度,大小等)和动态特征(吃饭,睡觉,上网等).将静态特征作为Java对象的属性,动态特征作为Java对象的功能(即方法).

抽象现实对象到计算机中:

将现实对象的静态属性作为java对象的属性

将现实对象的动态属性作为java对象的功能/方法

对象: 考拉

属性: 灰色黑眼睛

功能: 吃饭爬树卖萌

以上将现实对象--考拉进行了抽象,这些抽象信息和java程序有直接关系吗?

java程序的执行过程:

编写java文件: javac java文件名.java

执行class文件: java class文件名

我们需要将对象的抽象信息记录到java文件.

java文件的编写格式:

java文件中,必须以类为基本的结构.

类的编写格式:

权限class 类名{

}

1.权限具体之后再讲. 通常用public

2.类名通常为java文件的文件名

3.其他所有代码都要放在类体中

4.类体中主要为[成员变量]属性和[成员]方法.

属性的编写格式: [属性的编写实质就是全局变量的编写]

访问权限属性类型属性名; 或访问权限属性类型属性名=值; (变量类型变量名=值;)

说明: 权限通常为public

方法的编写格式:

方法就是完成特定功能的代码块

访问权限[static/native等等] 返回值类型方法名([参数类型参数名,参数类型参数名,...]){...方法体...} 和以前的方法定义是一样的格式,但是今天把static先去掉。

2.类与对象及其使用

对象对象对象

模拟现实对象:

现实对象的抽象信息被记录在了java文件中,java文件实质相当于一个设计图纸.

想要获得一个真实的对象,我们需要按照设计图纸来实现/创建相应的产物.

模拟对象的思路: 告诉java系统,设计图纸的位置,并让java系统创建相应的对象.

创建对象的格式:

new 包名.类名(); 告诉java系统去XX包中寻找类名.java 图纸,创建该对象

说明:

new中文意思: 新建创建新生

通常创建当前包中的类对象时,可以省掉包名的编写,默认为当前包.

如何使用呢?

创建对象使用。

如何创建对象呢?

格式:类名[类型] 对象名= new 类名();

如何使用成员变量呢?

对象名.变量名;

如何使用成员方法呢?

对象名.方法名(...);

new: 新建新生创建.告诉java系统创建XX对象[含有属性和方法]内存图辅助介绍

在java系统中,JVM[java虚拟机]碰到new关键字都会去内存中申请一块内存空间,用于存放对象的数据

2.方法的分类,参数,返回值,调用

java方法的编写格式:

权限[static/native等等] 返回值类型方法名([参数类型参数名,参数类型参数名,...]){

方法体,编写当前方法的主要功能:方法就是完成特定功能的代码块

}

方法注意事项

方法不调用不执行

方法与方法是平级关系,不能嵌套定义

方法定义的时候参数之间用逗号隔开

方法调用的时候不用在传递数据类型

如果方法有明确的返回值,一定要有return带回一个值

说明: java中的方法,也称为函数. 方法==函数

java方法的分类: main方法[也称为主函数] 普通函数构造函数

Main方法:

public static void main(String[] 参数名){

方法体;

}

普通方法:

权限[static/native等等] 返回值类型方法名([参数类型参数名,参数类型参数名,...]){

方法体,编写当前方法的主要功能:方法就是完成特定功能的代码块

}

返回值类型:

说明方法返回的数据,是什么类型. 同时使方法外部可以接受方法的执行结果.

如果一个方法没有/不需要返回任何数据,那么返回值类型编写为"void".

如果一个方法需要返回数据,那么返回值类型就为该数据的类型. 格式: return 要返回数据;

案例:返回一个时间/日期值

构造方法:

构造函数: 用于创建对象.

格式: 权限方法名([参数类型参数名,参数类型参数名,...]){

方法体

}

说明:

1.当一个java类中没有编写任何形式的构造函数时,java系统自动产生一个无参构造.

[java--->class称为编译class--->java称为反编译]

2.构造函数中没有返回值类型的编写,也不能在方法体中使用return返回数据.

3.构造函数的方法名称必须和类名称相同.

参数: 由方法外部向方法内部传递数据.

参数个数不受限制,但是在调用含有参数的方法时,必须按照参数的个数和顺序,及类型传入相应的值.

参数的分类: 形参实参

形参: 通常指方法声明中参数的声明. 特点: 无法确定参数的值

实参: 通常指调用方法时传递的数据. 特点: 可以确定参数的值

案例:

模仿xp/win7等等进入系统后,输出欢迎**进入信息

方法调用

java类中主要含有: 属性和方法.

方法: 将现实事物的动态属性抽象为java对象的方法.每个方法含有不同的功能.

但是在一个java项目中,经常需要多个功能联合使用,可能发生方法之间的调用.

方法调用方式:

1.直接调用

2.对象调用

3.类名调用

直接调用:

要求: 被调用方法必须和当前方法在同一个类中

格式: 方法名();

注意:static修饰的方法只能调用static修饰的变量和方法

对象调用:

要求: 必须已经创建了相应的对象,才能调用该对象的方法[属性和方法属于对象的]

格式: 对象.方法名();

类名调用:

要求: 被调用方法必须被static修饰

格式: 类名.方法名();

思考: 一个方法被static修饰后,该方法将不再属于某个对象,而属于公共.

构造函数的方法调用: [整体了解即可]

方法: main方法普通方法构造方法

1.构造函数用于创建对象,普通函数不能直接调用构造函数.

2.构造函数可以直接调用普通函数

3.构造函数之间不能直接相互调用,必须使用关键字this 实现.

关键字this:

1.this([参数值,参数值,..]) this表示类名称. 类名()==this();

2.this.属性this表示对象的引用

this表示类名称,用于解决构造函数相互调用.

格式: this([参数,参数,...])

要求:

1.this([参数,参数,...])只能编写在构造函数中,不能在普通函数中编写.

2.this([参数,参数,...])必须作为方法体的第一行有效代码

3.java系统中不允许构造函数之间直接/间接相互调用形成死循环. 通常使用this作为构造函数相互调用的出口.

this.属性; this表示对象的引用

作用:

1.解决全局变量和局部变量名称冲突,按照就近原则处理后,无法使用全局变量问题

2.解决全局变量和参数名称冲突,按照就近原则处理后,无法使用全局变量问题

3.匿名对象:[了解]

就是没有名字的对象。

匿名对象的应用场景:

A:调用方法,仅仅只调用一次的时候。

注意:调用多次的时候,不适合。

那么,这种匿名调用有什么好处吗?

有,匿名对象调用完毕就是垃圾。可以被垃圾回收器回收。

B:匿名对象可以作为实际参数传递

关键字static:

static关键字(理解)

(1)静态的意思。可以修饰成员变量和成员方法[ 用途: 主要用于修饰代码块,全局变量,方法]

static修饰变量:

static 变量类型变量名=值;

(2)静态的特点:[被static修饰的代码,都存放在全局数据

区]

A:随着类的加载而加载

B:优先于对象存在

C:被类的所有对象共享

这其实也是我们判断该不该使用静态的依据。

举例:饮水机和水杯的问题思考

D:可以通过类名调用

既可以通过对象名调用,也可以通过类名调用,建议通过类名调用。

(3)静态的内存图

静态的内容在方法区的静态区

(4)静态的注意事项;

A:在静态方法中没有this对象

B:静态只能访问静态(代码测试过)

(5)静态变量和成员变量的区别

A:所属不同

静态变量:属于类,类变量

成员变量:属于对象,对象变量,实例变量B:内存位置不同

静态变量:方法区的静态区

成员变量:堆内存

C:生命周期不同

静态变量:静态变量是随着类的加载而加载,随着类的消失而消失

成员变量:成员变量是随着对象的创建而存在,随着对象的消失而消失

D:调用不同

静态变量:可以通过对象名调用,也可以通过类名调用

成员变量:只能通过对象名调用

(6)main方法是静态的

public:权限最大

static:不用创建对象调用

void:返回值给jvm没有意义

main:就是一个常见的名称。

实验一 Java面向对象基础 实验报告

实验一Java面向对象基础、数组实验报告 一、实验目的 1. 理解面向对象编程基本思想 2. 了解类的封装方法,以及如何创建类和对象 3. 掌握面向对象程序设计的方法,了解类的继承性和多态性的作用 4. 掌握Java 中的数组定义、引用 二、实验要求 编写程序时要注意体现面向对象思想,体会不同访问控制符的作用。 1. 编写一个Vehicle类和它的二个子类Bus类和Boat类。(要求:程序要有构造方法重载;要能体现类的多态性) 2. 定义一个由若干个整数组成的数组,要求输出该数组的平均值以及所有的奇数之和。 3. 随机生成30个0-9之间的数字,分别统计0-9这10个数字分别出现了多少次。 三、实验内容及结果 1. 编写一个Vehicle类和它的二个子类Bus类和Boat类。 public class Vehicle { private String color; public Vehicle() { this("black"); } public Vehicle(String color) { this.color = color; } public String toString() { return "this is a " + this.color + " vehicle"; } } class Bus extends Vehicle { private int passagerNumber; public Bus() { this(50, "black"); } public Bus(int number) { this(number, "black"); } public Bus(int number, String color) { super(color); this.passagerNumber = number; } public String toString() {

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)方法,将姓名和年龄打印出来。

Java面向对象程序设计复习题附答案

Java面向对象程序设计复习题 一、选择题 1、下列哪个是Java中的关键字(C )。 A、run B、Integer C、default D、implement 2、下面关于Java.applet.Applet和其祖先类的描述语句哪个不对(B )。 A、Applet是Container的一种 B、Applet是Window的一种 C、Applet是Component的一种 D、Applet是Panel的一种 3、下列类DataOutputStream的构造方法正确的是(A )。 A、new dataOutputStream(new FileOutputStream(“out.txt”)); B、new dataOutputStream(“out.txt”); C、new dataOutputStream(new writer(“out.txt”)); D、new dataOutputStream(new FileWriter(“out.txt”)); 4、在switch(表达式)语句中,表达式的类型不能为(C )。 A、byte B、char C、long D、int 5、在接口MouseMotionListener中方法正确的是(A )。 A、Public void mouseDragged(MouseEvent) B、Public boolean mouseDragged(MouseEvent) C、Public void mouseDragged(MouseMotionEvent) D、Public boolean MouseDragged(MouseMotionEvent) 6、下面是一些异常类的层次关系 https://www.sodocs.net/doc/1b8512481.html,ng.Exception https://www.sodocs.net/doc/1b8512481.html,ng.RuntimeException https://www.sodocs.net/doc/1b8512481.html,ng.IndexOutOfBoundsException https://www.sodocs.net/doc/1b8512481.html,ng.ArrayIndexOutOfBoundsException https://www.sodocs.net/doc/1b8512481.html,ng.StringIndexOutOfBoundsException 假设有一个方法X,能够抛出两个异常,Array Index和String Index异常,假定方法X中没有try-catch语句,下面哪个答案是正确的。(B ) A、方法X应该声明抛弃ArrayIndexOutOfBoundsException和StringIndexOutOfBounds Exception。 B、如果调用X的方法捕获IndexOutOfBoundsException,则ArrayIndexOutOfBounds Exception和StringIndexOutOfBoundsException都可以被捕获。 C、如果方法X声明抛弃IndexOutOfBoundsException,则调用X的方法必须用Try-catch 语句 捕获。 D、方法X不能声明抛弃异常。 7、现有一变量声明为boolean aa;下面赋值语句中正确的是( D )。 A、aa=0 B、aa=True C、aa="true" D、aa=false 8、某类Example的main()方法参数为args,当输入数据Java Example cat时,args[0]的值为(A )。 A、cat B、Java C、example D、null 9、String s1=new String(“Java”);String s2=new String(s1)则下列哪个说法是正确的(C )。 A、表达式s1==s2为真 B、s1和s2是同一个对象

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

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

java面向对象程序设计(戴开宇译版)课本知识整理

第一章计算机、程序和java概述 1.程序设计就是创建(或者开发)软件,软件也称为程序。 2.计算机是存储和处理数据的电子设备。计算机包括硬件和软件两部分。 3.一台计算机是由以下几个主要的硬件组件构成的:中央处理器(CPU),内存(主存),存储设备(例如磁盘和光盘),输入设备(例如鼠标和键盘),输出设备(例如显示器和打印机),通信设备(例如调制解调器和网卡) 4.数据和电信号通过总线在计算机的各个部分之间传输。 5.中央处理器(CPU)是计算机的大脑。他从内存中获取指令,然后执行这些指令。CPU 通常由两部分组成:控制单位和算术/逻辑单元。控制单元用于控制和协调其他组件的动作。算术/逻辑单元用于完成数值运算(加减乘除法)和逻辑运算(比较)。 6.核是处理器中实现指令读取和执行的部分。 7.二进制数字系统中的数,称为比特(bit,二进制数) 8.计算机中字节(byte)是最小的存储单位。每个字节由8个比特构成。各种类型的数据(例如,数字和字符)都被编码成字节序列。 9.计算机的存储能力是以字节和多字节来衡量的。KB

《JAVA面向对象程序的设计》练习题库B

第一章Java 简介 1. 下面( )是JDK中的Java运行工具.(选择二项) A. javac B. javam C. java D. javar 【解析】A C 2. 选出在Java中有效的注释声明(选择二项) A.//This is a comment B.*/This is a comment C./This is a comment D./*This is a comment*/ 【解析】AD 3. 下面( )命令可用于编译Java程序.(选择一项) A. java B. javac C. appletviewer D. javadoc 【解析】B 4. 下面( )数据类型可用于main()方法中传递的参数. (选择一

项) A. String B. Integer C. Boolean D. Variant 【解析】A 5. 在屏幕上显示的消息正确的语句是(选择一项) A. System.out.println(“I am Java Expert”); B. system.out.println(“I am Java Expert”); C. System.Out.Println(“I am Java Expert”); D. System.out.println(‘I am Java Expert’); 【解析】A 6. Java编译器会将Java程序转换为(选择一项) A. 字节码 B. 可执行代码 C. 机器代码 D. 以上所有选项都不正确 【解析】A 7. Java源代码文件的扩展名为(选择一项) A. .class

B. .java C. . D. 以上所有选项都不正确 【解析】B 第二章Java语言基础 1. 在Java中,byte数据类型的围是(选择一项) A. -32767~32768 B. -32768~32767 C. -127~128 D. -128~127 【解析】D 2. 以下( )是合法的标识符(选择二项) A. Te1_num B. emp1 C. 8678 D.batch.no 【解析】AB 3. 下列代码的输出结果是(选择一项)

Java面向对象习题

选择题 1、下列关于变量的叙述哪个是错的?() A. 实例变量是类的成员变量。 B. 在方法中定义的局部变量在该方法被执行时创建。 C. 实例变量用关键字static声明。 D. 局部变量在使用前必须被初始化。 2、在Java语言中,下列哪个包是编译器自动导入的?() A. java.applet B. https://www.sodocs.net/doc/1b8512481.html,ng C. java.io D. java.awt 3、当类的成员未用访问权限修饰符时,Java认为此成员的访问权限为()。 A. private B. protected C.friendly D.public 4、下面哪个关键字不是用来控制对类成员的访问的?() A. public B. protected C. default D. private 5、下面哪一个特性不是面向对象编程主要体现的()。 A. 封装性 B. 继承 C. 多态 D. 类 6、不允许作为类及类成员的访问控制符的是()。 A. public B. private C. static D. protected 7、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB 作为前缀就可以调用它,该方法头的形式为()。 A、static void method( ) B、public void method( ) C、final void method( ) D、abstract void method( ) 8、可以在下面代码段point x处写入的是?() //point x public class Interesting{ //do something } A. String str; B. static int PI=3.14; C. public class MyClass{//do other thing…} D. import java.awt.*; 9、下列关于变量的叙述哪个是错的?() A、实例变量是类的成员变量。 B、在方法中定义的局部变量在该方法被执行时创建。 C、实例变量用关键字static声明。 D、局部变量在使用前必须被初始化。 10、下列哪个类声明是正确的?() A、abstract final class HI{} B、abstract private move(){} C、protected private number; D、public abstract class Car{}

java面向对象程序的设计(董小园版)

目录 第1章了解Java (2) 第2章面向对象的“对象” (7) 第3章对象的属性---变量详述 (9) 第4章对象的行为---成员方法详述 (12) 第5章生命周期及作用域 (17) 第6章Java常用类与函数库 (19) 第7章对象的进一步探讨--面向对象中的继承 (22) 第8章深入多态 (26) 第9章使用异常处理 (28) 第10章基于Swing的图形界面编程 (29) 第11章可视化程序的事件处理 (38) 第12章Java多线程机制 (51)

第1章了解Java 1.编写一个程序,将用户在命令行输入的24小时制时间转换为12小时制。 public class TimeTest{ public static void main(String args[]){ int time; time = Integer.parseInt(args[0]); if(time<0||time>24) System.out.println("输入的不是一个合法时间!"); else if(time>12) System.out.println("12小时制为"+(time-12)+"点"); else System.out.println("12小时制为"+time+"点"); } } 2.用户输入x的数值,根据如下规则输出计算后的结果y值。 x (x<1) Y = 2x -1 (1<=x<10) 3x -11 (x>=10) public class CalculateTest{ public static void main(String args[]){ float x,y; x = Float.parseFloat(args[0]); if(x<1) y = x; else if(1<=x&&x<10) y = 2*x-1; else y = 3*x-11; System.out.println(y); } } 3.编写一个Java应用程序,由命令行参数输入一个百分制成绩,要求打印出 成绩等级“A”、“B”、“C”、“D”、“E”。90分以上为“A”;80~89分为“B”;70~79分为“C”;60~69分为“D”;60分以下为“E”。 要求使用switch语句实现。 运行效果如图2所示:

2Java第二单元练习题-面向对象程序设计基础资料

2面向对象程序设计基础 2.1单项选择题 1.下面关于类的继承性的描述中,错误的是()。 A.继承是在已有的基础上生成新类的一种方法 B.Java语言要求一个子类只有一个父类 C.父类中成员的访问权限在子类中将被改变 D.子类继承父类的所有成员,但不包括私有的成员方法 2.在成员方法的访问控制修饰符中,规定访问权限包含该类自身,同包的其他类和其他包的该类子类的修饰符是()。 A.默认B.protected C.private D.public 3.在类的修饰符中,规定只能被同一包类所使用的修饰符是()。 A.public B.默认C.final D.abstract 4.下列关于子类继承父类的成员描述中,错误的是()。 A.当子类中出现成员方法头与父类方法头相同的方法时,子类成员方法覆盖父类中的成员方法。 B.方法重载是编译时处理的,而方法覆盖是在运行时处理的。 C.子类中继承父类中的所有成员都可以访问。 D.子类中定义有与父类同名变量时,在子类继承父类的操作中,使用继承父类的变量;子类执行自己的操作中,使用自己定义的变量。 5.下列关于继承性的描述中,错误的是()。 A.一个类可以同时生成多个子类B.子类继承了父类中除私有的成员以外的其他成员C.Java支持单重继承和多重继承D.Java通过接口可使子类使用多个父类的成员 6.下列关于抽象类的描述中,错误的是()。 A.抽象类是用修饰符abstract说明的 B.抽象类是不可以定义对象的 C.抽象类是不可以有构造方法的D.抽象类通常要有它的子类 7.下列关于构造方法的叙述中,错误的是()。 A.构造方法名与类名必须相同B.构造方法没有返回值,且不用void声明 C.构造方法只能通过new自动调用D.构造方法不可以重载,但可以继承 8.下面叙述中,错误的是()。 A.子类继承父类B.子类能替代父类C.父类包含子类D.父类不能替代子类

《Java面向对象编程》练习题

专题1 初识Java 一、填空题 1.自从Sun推出Java以来,按应用范围可分为三个版本,分别是()、()、()。2.环境变量的设置,若JDK安装在“D:\JDK”,则应设置Path为()、classpath为()。 3.Java源文件的扩展名为(),用Javac编译Java源文件,得到的字节码文件的扩展名为()。 4.如果Java源文件中有多个类,那么只能有一个类是()类。 二、选择题 1.作为Java应用程序入口的main方法,其声明格式是() 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.下面命令正确的是() A.java AppFirst.java B.java AppFirst C.java appfirst.class D.javac AppFirst 3.设有一个Java小程序,源程序名为FirstApplet.java,其HTML文件为FirstApplet.html,则运行该小程序的命令为() A.java FirstApplet B.javac FirstApplet.java C.appletviewer FirstApplet.java D.appletviewer FirstApplet.html 4.JDK安装完成后,主要的命令如javac、java等,都存放在根目录的()文件夹下。A.bin B.jre C.include D.doc 5.Java语言是一种__语言。 A.机器B.汇编C.面向过程的D.面向对象的 6、Java程序的最基本组成单位是__。 A.函数B.过程C.变量D.类 三、简答题(十分重要) 1.Java语言有哪些特点?

Java面向对象_练习题

Java基础面向对象习题1: 1.面向对象的软件开发有哪些优点? 使用面向对象思想进行开发有以下优点: 1、易维护 采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块,所以维护起来是非常方便和较低成本的。 2、质量高 在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量。 3、效率高 在软件开发时,根据设计的需要对现实世界的事物进行抽象,产生类。使用这样的方法解决问题,接近于日常生活和自然的思考方式,势必提高软件开发的效率和质量。 4、易扩展 由于继承、封装、多态的特性,自然设计出高内聚、低耦合的系统结构,使得系统更灵活、更容易扩展,而且成本较低。 面向对象的软件开发具有以下优点: ●把软件系统看成是各种对象的集合,这更接近人类的自然思维方式。 ●软件需求的变动往往是功能的变动,而功能的执行者——对象一般不会有大的变 化。这使得按照对象设计出来的系统结构比较稳定。 ●对象包括属性(数据)和行为(方法),对象把数据以及方法的具体实现方式一起封装起 来,这使得方法和与之相关的数据不再分离,提高了每个子系统的相对独立性,从而提高了软件的可维护性。 ●支持封装、抽象、继承和多态,提高了软件的可重用性、可维护性和可扩展性 2.在软件系统中,为什么说一个孤立的不对外提供任何服务的对象是没有意义的? 开发软件系统的目的,就是为了让它提供特定服务。从使用者的角度出发,整个软件系统就是一个服务提供者。大的系统由多个子系统组合而成。在系统内部,每个子系统(对象或对象的组合)也都是服务提供者,它们为其它子系统或者所属的大系统提供服务,各个系统之间通过发送消息来互相获得服务。因此,一个孤立的不对外提供任何服务的系统是没有任何意义的 3.列举一些现实生活中的例子,来说明什么是依赖关系、什么是聚和关系,以及什么 是关联关系。 依赖关系:人依赖食物;电视机依赖电;理发师依赖剪刀和吹风机;鱼依赖水聚集关系:电脑由显示器、主机和键盘等聚集而成; 关联关系:公司和员工;银行和客户;老公和老婆 4.列举一些现实生活中的例子,来说明什么是封装,什么是接口。 封装:电脑主机的组件被封装在机箱内;电视机的内部构件也被封装在大壳子内 接口:电脑的键盘上的按键是电脑向人提供的接口;电脑上的USB插口是向移动硬盘提供的接口;电脑上的光盘驱动器是向光盘提供的接口。 5.抽象的最主要的特征是什么? 抽象是指从特定角度出发,从已经存在的一些事物中抽取我们所关注的特性,形成一个新的事物的思维过程。抽象是一种由具体到抽象、由复杂到简洁的思维方式。

Java面向对象基础试题

一、【必做题】 Ⅰ.选择题 1、列选项中哪个是类 { }的默认构造方法?(知识点:构造器) A. (); B. (); C. (); D. (); E. (); 2、给定下列代码的执行结果是?(知识点:构造器) A { A() { (“ A”); } ([] ) { A(); } } A. A B. 在第2行处抛出异常 C. 编译错误 D. 在第6行处抛出异常 E. 代码执行后没有输出 3、给定以下代码:(知识点:构造器)

1. { 2. ( x, y, z) { 3. } 4. } 下列选项中,哪些可以在类中定义成重载的构造方法: A. ( ) { } B. ( ) { } C. ( z, y, x) { } D. ( x, y, z) { } E. ( x, y, z) { } 4、以下代码的执行结果是?(知识点:使用) A. 编译失败 B. 编译成功,输出“0” C. 编译成功,输出“1” D. 编译成功,输出“2” 5、以下代码的执行结果是?(知识点:类的成员及方法中的变量)

A. 代码编译成功,并且打印“” B. 代码编译成功,并且打印“” C. 代码编译失败,因为s为被初始化 D.代码编译失败,因为s不可以被引用 E. 代码编译成功,但是运行时抛出 6、给定以下代码:(知识点:中回收机制) 12. () { 13. A a = A(); 14. B b = B(); 15. (b); 16. b = ; 17. a = ; 18. (“ ”); } 对于在第14行创建的对象b,系统什么时候会对它进行垃圾回收? A. 在第16行之后 B. 在第17行之后 C. 在第18行之后(当函数执行完成后) D. 无法确

Java面向对象编程练习题

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 AppFirst.java B.java AppFirst C.java appfirst.class D.javac AppFirst 3.设有一个Java小程序,源程序名为FirstApplet.java,其class文件为

FirstApplet.calss,则运行该小程序的命令为(B) A.java FirstApplet B.javac FirstApplet.java C.appletviewer FirstApplet.java D.appletviewer FirstApplet.html 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)我的电脑—属性—高级—环境变量—系统变量 2)新建变量名:path 变量值:jdk中bin的路径 C:\Program Files\Java\jdk1.6.0_02\bin; 配置Class Path :

java面向对象编程类的封装接口和基本类库练习题

面向对象编程基本知识练习 一、判断题 1.不需要定义类,就能创建对象。() 2.构造方法用于给类的private 实例变量赋值。() 3.对象一经声明就可以立即使用。() 4.在定义变量和方法时,必须清楚地在其面前标上访问权限修饰符。() 5.Java 程序中的参数传递都是把参数值传递给方法定义中的参数。() 6.在类定义中,成员访问权限修饰符不能多次出现。() 7.new 操作符动态地为对象按其指定的类型分配内存,并返回该类型的一个引用。() 8.类的方法通常设为public,而类的实例变量一般也设为public。() 9.构造方法在创建对象时被调用。() 10.通过点运算符与类对象的引用相连,可以访问此类的成员。() 11.声明为protected 的类成员只能被此类中的方法访问。() 12.同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间。() 13.类的成员变量可以放在类体的任意位置。() 14.声明为protected 的类成员可以被此类作用域中的任何对象访问。() 15.没有返回值的方法可以用void 来表示,也可以不加。() 二、选择题 1. 下面对对象概念描述错误的是:( ) A 操作是对象的动态属性 B 任何对象都必须有继承性 C 对象间的通讯靠消息传递 D 对象是属性和方法的封装体 2.编译并运行下面的程序,运行结果为:( ) public class A { public static void main(String[] args) { A a=new A(); a.method(8); } void method(int i) { System.out.println(“int:“+i); } void method(long i) { System.out.println(“long:“+i); } } A 程序可以编译运行,输出结果为int:8 B 程序可以编译运行,输出结果为long:8

JAVA面向对象程序设计教案

教案首页 教学设计

说课内容: 1、为什么要学本门课 《Java高级程序设计》是计算机类专业必修的一门专业核心课,本课程以能力与知识相结合为培养目标,以社会岗位需求为向导,切实培养同学们的逻辑与编程思维及使用程序设计语言解决实际问题的能力,为同学们走上工作岗位打下坚实的基础。

2、具体职业岗位专业能力培养: (1)具备面向对象编程的编程思想及基本算法,能根据问题正确选择、组合算法。 (2)能独立编写代码,编写测试数据,并能独立调试程序,获得正确结果。 (3)具备进行分析和处理Java程序运行中产生的有关技术问题的能力。 (4)开发创新的能力。 3、本门课学什么 通过本门课程的学习,使同学们掌握Java 程序设计语言的基本语法,Java 面向对象编程方法,同时应具备利用JDK来创建、编译、调试Java 项目的能力。对于本门课程有如下三个教学目标: (1)知识目标:理解和掌握JA V A语言基本语法和语义,掌握标准程序和小应用程序的开发方法,掌握数据库、网络编程的基本开发方法。 (2)能力目标:要求能较熟练地使用JDK 进行Java 程序的编辑、编译和调试技术,使用MyEclipse进行图形用户界面设计和数据库应用程序的开发;能开发有一定实用价值的应用程序。 (3)素质目标:养成良好的编程习惯、提高团队精神和协作精神、艰苦奋斗意识、心理素质和克服困难的能力。 4、怎么组织本门课 1)以就业为导向,进行专业定位。 2)对软件开发工作岗位和工作任务进行分析。 3)明确计算机应用专业的核心能力,进行课程设计,做到实际的工作岗位——Java软件编程师与工作任务相对应。 4)按照职业行动完整性和工作过程系统化的理念归纳出学习情境。 5)学习情境注意由浅到深,鼓励同学们利用网络资源进行自主学习和开放性学习。 课程设计理念与思路 学习内容 5、如何学习? 1)启发教学 通过各种教学方式和手段激发同学们的学习欲望,启发同学们,积极思维,发现问题,提出问题,并逐步解决问题。例如,在讲解程序设计时,不是简单地给出程序清单,而是从分析问题入手,继而找出解决问题的方法,再给出算法,最后编写出完整的程序。 这一过程的关键是每一步都采用与同学们一起探讨的方式,让同学们在启发下思考,在思考中解决问题,从而掌握独立分析问题、解决问题的方法。 学习方法 2)项目教学和案例教学法 以一个实际的项目(学籍管理系统)为例展开教学,将知识点融入项目中,运用面向对象的思想进行分析、设计和实现,树立同学们面向对象的程序设计思想。 而案例教学则贯穿在课程的主要章节中,通过“典型程序案例”→“语法,实践知识点说明”→“模仿编程”→“实践提高”的教学组织方式,培养同学们实际应用能力。 学习方法 通过精选案例、分解任务、讲练有机融合,将相关知识点融入项目,通过项目实现,让同学们掌握Java技术,并对面向对象编程有一个直观和更加感性的认识,再通过动画演示、趣味教学等方法,使同学们能够积极参与整个教学过程,让同学们建立起面向对象编程的思想,体现“以同学们为中心,教师为主导”的教学思想。 学习方法 3)任务驱动教学法 对每个知识点的讲解采用“任务驱动”的方法,通过“提出任务→分析任务→完成任务→边学边做→总结”的过程,体现出互动创新、提倡个性、重在应用、共同协作的教学风格。 4)榜样激励教学法 在教学过程中,通过展示分析高年级同学们或同班(或同年级)同学们的优秀作品,启发激励其他同学们。实践证明,榜样激励教学法很有效,特别是展示同班(或同年级)同学们作品最具激励作用。 6、考核方法 根据实践为主、理论够用的高职教学原则,本课程的考核注重学习过程评价、注重专业实践能力。 考试成绩=理论考试(课程学习结束时,采用“教考分离”制度,以闭卷笔试方式进行。考试成绩占学科成绩的80%)+平日成绩(作业+出勤占20%)。 7、Java语言的诞生

java面向对象基础练习答案.docx

Java语言面向对象基础 一、填空题 1.类是一组具有相同(属性)和(行为)的对象的抽象。(实例)是由某个特定的类所描述的一个个具体的对象。 2.(接口)只描述系统所提供的服务,而不包含服务的实现细节。 3.构造方法的方法名与(类)相同,若类中没有定义任何的构造方法,则运行时系统会口动为该类牛成一个(无参构造)方法。 4.(构造方法)是一个特殊的方法,用于创建一个类的实例。 5.对象拷贝有(对象的引用)、()和()三种。 二、简答题 1.为什么耍对类进行封装?封装的原则是什么? ■Java中通过将数据封装、声明为私有的(private),再提供一个或多个公开的(publi c)方法实现对该属性的操作,以实现下述目的。 □隐藏一个类的实现细节 □防止对封装数据的未经授权的访问。使用者只能通过事先定制好的方法來访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作。 □有利于保证数据的完整性 □便于修改,增强代码的可维护性。 尽力让封装的每个类里面的属性和方法独立,方便以后操作,减少耦合性就好了。 2.什么是对象?什么是类?二者有何关系? 类是具有相同数据结构(属性)和相同操作功能(行为)对彖的集合。对彖就是符合某种类所产生的一个实例。对彖与类的关系是: 对象的共性抽象为类,类的实例化就是对象。 对象的声明: 类名对象名二new类名(); 对象的调用: 访问属性:对象名?属性名; 访问方法:对象名?方法名(); 类是对现实生活屮的一类人或者一类事物的高度抽象,抽取出该类事物共有的属性和方法 由类生成的貝?体的个体是对彖 3.Java中类定义的一般格式是什么?定义类的修饰符有哪些?各自的特点是什么? Public class 1 .public default protected private 使用对象:类、接口、成员 介绍:无论它所处在的包定义在哪,该类(接口、成员)都是可访问的 2.private 使用对象:成员 介绍:成员只可以在定义它的类中被访问

《Java面向对象程序设计》考试卷及答案带注释

一、单选题(每小题1分,共30分) 1.在MyEclipse中,()视图可以将项目中包含的文件及层次结构展示出来。C A) Package B)Declaration C)Navigator D) Console 2.下列标识符中,正确的是()。C A)class B) 123_rr C) _lei D) test&12 3.下列的()选项可以正确用以表示八进制值8。0x代表16进制,0代表8进制 D A)0x8 B)0x10 C)08 D)010 4.以下哪个不是Java的原始数据类型()D A) int B) boolean C) float D) Char引用数据类型 5.下列有关Java布尔类型的描述中,正确的是()A A)一种基本的数据类型,它的类型名称为boolean B)用int表示类型 C)其值可以赋给int类型的变量 D)有两个值,1代表真,0代表假 6.在Java中,不属于整数类型变量的是( ) A A) double 浮点型B) long C) int D) byte 7.以下do-while语句构成的循环执行次数是()。B int k=0; do { ++k ;}while(k<1); A) 一次也不执行B) 执行1次C) 无限次D) 有语法错误,不能执行 8.表达式(1/0<1)&& (12==0) 的值为()。逻辑运算结果只有true和false两种 B A) true B) false C) 0 D) 运行时抛出异常 9.以下()表达式不可以作为循环条件 A A) i=5 B )i<3 C) count==i D) bEqual=str.equals("q") 10.下列数组初始化正确的是() D A) int score[5] = {90,12,34,77,56}; B) int[5] score = new int[]; C) int[] score = new int[5]{90,12,34,77,56}; D) int score[] = new int[]{90,12,34,77,56}; 11.若有定义:byte[] x={11,22,33,-66}; 其中0≤k≤3,则对x数组元素错误的引用是() C A) x[5-3] B) x[k] C) x[k+5] D) x[0] 12.以下代码的输出结果是()。 D public static void main(String[] args){ for(int i=1;i<=10;i++){ if(i%2==0||i%5==0){ continue; } System.out.print(i + "\t"); } } A) 1 B) 1 3 4 C) 1 3 5 7 9 D) 1 3 7 9 13.下列()选项的java源文件代码片段是不正确的。 B A) package testpackage; B) import java.io.* ; public class Test{} package testpackage;

相关主题