当前位置:文档之家› Java面向对象编程练习题

Java面向对象编程练习题

Java面向对象编程练习题
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的路径

配置Class Path :

1)我的电脑—属性—高级—环境变量—系统变量

2)新建变量名:classpath 变量值:.;jdk中lib的路径;

3.简述Java应用程序和小应用程序的区别。

4.简述Java应用程序的开发过程

专题2 标识符、表达式、数据类型

一、填空题

1.Java逻辑常量有两个:(true )和(false)。

2.写出下列表达式的运算结果,设a=2,b=-4,c=true。

(1)-a%b++ -2

(2)a>=1 && a <= 10 ? a : b true

(3)c^(a>b) false

(4)(-a)<

(5)(double)(a+b)/5+a/b -0.4

3、比较两个数相等的运算符是:== 。

4、Java中的八种基本数据类型分别是:char、int 、long 、short 、boolean 、float 、double和byte 。

二、选择题

1.下面这些标识符哪个是错误的(C)

A.Javaworld B._sum C.2Java Program D.$abc

2.下列哪一组运算符的优先级顺序是从高到低排列的(B)

A.|、&、!B.&、^、|| C.!、%、++ D.<、<<、++

3、下面哪个赋值语句不会产生编译错误(D )

A.char a=’abc’; B.byte b=152; C.float c=2.0; D.double d=2.0;

4.下面哪个单词是Java语言的关键字(D)

A.False B.FOR C.For D.for

5.执行下面程序后,哪个结论是正确的(A )

int a, b, c;

a=1; b=3; c=(a+b>3 ? ++a : b++);

A.a的值为2,b的值为3,c的值为1 B.a的值为2,b的值为4,c的值为2

C.a的值为2,b的值为4,c的值为1 D.a的值为2,b的值为3,c的值为2

6.设各个变量的定义如下,哪些选项的值为true ( C)

int a=3, b=3;

boolean flag=true;

A.++a = = b B.++a= = b++ C.(++a = = b) || flag D.(++a= =b) & flag

7.表达式(int)6.5/7.5*3的值的类型为(B)?

A.short B.int C.double D.float

8.设a, b, x, y, z均为int型变量,并已赋值,下列表达式的结果属于非逻辑值的是(D)A.x>y && bx-y C.y = = ++x D.y+x*x++

9.下面语句输出的结果为(B )

2); //二进制比较0101^0010=0111

A.6 B.7 C.10 D.25

10.对下面的语句执行完后正确是:(D )

int c=’c’/3;

A.输出结果为21 B.输出结果为22 C.输出结果为32 D.输出结果为33 11.以下选项中变量a已定义类型,合法的赋值语句为(A)

A.a = int(y); B.a= =1; C.a = a+1=3; D.++a;

12.执行下列程序段后,ch,x,y的值正确的是:(D )

int x=3, y=4;

boolean ch;

ch=x

A.true,3,4 B.true,4,3 C.false,3,4 D.false,4,3

13.下列标识符中,正确的是 B 。

A、1_Back

B、$_Money

C、$-money

D、2-Forward

14.现有一个int类型的整数和一个double类型的浮点数,当它们之间做了加法运算之后,得到的结果类型应该是 B 。

A、int类型

B、double类型

C、float类型

D、long类型

15、以下程序的运行结果为 A 。

public class A {

public static void main(String a[]) {

int x = 2, y = 5;

String z = "5";

}

}

A.7 B.7 C.25 D.7

25x+z 7x+z 25x+z 25x+z

x+y=25 x+y=25 x+y=7 x+y=25

x+z=25 x+z=7 x+z=25 x+z=7

16、设有定义int a=12;则执行a*=12;语句后,a的值为:A 。

A.144 B.12 C.24 D.0

17、下列标识符中,合法的一个是C。

A.$#@!$ B.$我们$ C.$22$ D.2$$2

18、执行下列程序段后,b, x, y的值分别是D 。

int x=6,y=8;

boolean b;

b=x>y&&++x==--y;

A.true , 6, 8 B.false , 6, 8 C.e, 7, 7 D.false, 7, 7

19、下列程序运行的结果是d。

public class A {

public static void main(String args[]) {

int x = 7%3;

while(x){

x--;

}

}

}

A.0 B.1 C.true D.编译错误

三、编程题

1.使用Math.pow()方法,求出2的32次方的值。

public class Tip {

public static void main(String[] args){

double i=2;

double t=0;

t=Math.pow(2, 32);

System.out.print(t);

}

}

专题3 流程控制语句

一、填空题

1.在switch语句中的表达式的类型必须是(int )或者(char )。

2.break在循环语句中的作用是(跳出循环)。

3.分支语句包括(if )和(switch )。

4.while循环语句的循环次数(n ),do-while语句的循环次数(n+1 ),for语句的循环次数(n )。

二、选择题

1.下面程序片段输出的是什么(C)

int a=3, b=1;

A.a=1 B.a=3 C.编译错误,没有输出D.正常运行,但没有输出

2.下面语句执行后,x的值为(C )

int a=4, b=5, x=3;

if(++a==b) x=x*a;

A.3 B.12 C.15 D.20

3.请看下面的程序代码:

当程序输出“second”时,x的范围是()

A.x<=0 B.x<20 && x>=0 C.x>0 D.x>=20 4.请看下面的程序代码:

switch(n){

case 0:

case 1:

}

当n为何值时,程序段将输出字符串”second”()

A.0 B.1 C.2 D.以上都可以

5.下列语句执行后,j的值是()

int j=3, i=3;

while(--i!=i/j) j=j+2;

A. 4 B.5 C.6 D.7

6.下列语句执行后,x的值是(D)

int x=2 ;

do{x+=x ; }while(x<17);

A. 4 B.16 C.32 D.256

7.执行下列语句后,i、j的值是()

int i=1, j=8;

do{

if(i++>--j)

continue;

}while(i<4);

A.i=4, j=5 B.i=5,j=4 C.i=5,j=5 D.i=5,j=6 8.下列语句执行后,k的值是()

int j=4, i, k=10;

for(i=2; i!=j; i++) k=k-i;

A. 4 B.5 C.6 D.7

9.下列语句执行后,c的值是()

char c=’\0’;

for(c=’a’; c<’z’; c+=3){

if(c>=’e’) break;

}

A.‘e’ B.’f’ C.’g’ D.’h’

10.若变量都已经正确说明,则以下程序段输出为()

a=10; b=50; c=30;

if(a>b) a=b;b=c;

c=a;

A.a=10 b=50 c=10 B.a=10 b=30 c=10

C.a=50 b=30 c=10 D.a=50 b=30 c=30

11.以下程序段输出是()

int x=1,y=0,a=0,b=0;

i=(--a==b++)? - -a : ++b;

j=a++; k=b;

2 -1 2

A.i=2,j=1,k=3 B.i=1,j=1,k=2 C.i=4,j=2,k=4 D.i=2,j=-1,k=2 12.以下程序的输出是()

int x=1,y=0,a=0,b=0;

switch(x){

case 1:

switch(y){

case 0: a++;break;

case 1: b++;break;

}

case 2:

a++;break;

case 3:

a++;b++;

}

2 0

A.a=1, b=0 B.a=2,b=0 C.a=1, b=1 D.a=2, b=2 13.以下程序段输出是()

int i=0,j=0,a=6;

if ((++i>0) || (++j>0 )) a++ :

A.i=0,j=0,a=6 B.i=1,j=1,a=7 C.i=1,j=0,a=7 D.i=0,j=1,a=7 14、下列程序运行的结果是。

public class A{

public static void main(String args[]){

char c = 'd';

for (int i = 1; i <= 4; i++) {

switch (i){

case 1:

c = 'a';

break;

case 2:

c = 'b';

break;

case 3:

c = 'c';

default:

}

}

}

}

A.!B.dbc!C.abc!D.abc!!

三、编程题

1.输入4个数,将这4个数按从小到大输出。

2.输入一个年份值,判断是否是闰年,输出相应的信息。

3.输入一元二次方程系数,若有实数根,求根并输出,否则输出“不是二次方程或没有实数根”的信息。4.编写程序,计算邮局汇款的汇费:如果汇款金额小于100元,汇费为1元,如果金额在100元与500元之间,按1%收取汇费,如果金额大于500元,汇费为50元。

5.求某年某月的天数.

6.求从1到100之间所有奇数的平方和(用for、while和do……while编写程序)。

7.求S=1+2+3+…+n之和,S<1000的最大n的值。

8. 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

9.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个,到第十天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少?

10.输出九九乘法表。

11.输出1000之内的所有完数。所谓完数指的是:如果一个数恰好等于它的所有因子之和,这个数就称为完数。

12.输出100以内的全部素数。

13.求1!+2!+3!+ (10)

14.求2+22+222+2222+22222。

专题4 数组

一、填空题

1.定义一个整型数组y,它有5个元素分别是1,2,3,4,5.用一个语句实现对数组y的声明、创建和赋值:()。

2.设有整型数组的定义:“int x[][]={{12,34},{-5},{3,2,6}};”则x.length的值为()

3.求取二维数组a[][]的第i行元素个数的表达式是()。

4、一个一维数组有10个元素,则该数组可用的下标范围是。

5、String S[]={“安徽”, “江苏”, “山东”};则S[1]的值是:。

6、当声明一个数据组int arr[]=new int[5];时,这代表这个数组所保存的变量类型是,数组元素下标的使用范围是。

二.选择题

1.设有定义语句“int a[]={66,88,99};”,则以下对此语句的叙述错误的是()

A.定义了一个名为a的一维数组B.a数组有3个元素

C.a数组的元素的下标为1~3 D.数组中的每个元素是整数

2.设有定义“int[] a=new int[4];”则数组a的所有元素是()

A.a0、a1、a2、a3 B.a[0]、a[1]、a[2]、a[3]

C.a[1]、a[2]、a[3]、a[4] D.a[0]、a[1]、a[2]、a[3]、a[4]

3.下面哪个选项正确地声明了一个字符串数组()

A.char[] str B.char[][] str C.String[] str D.String[10] str

4、假设有这样的数组创建:int a[]={1,2,3,4,5,6,7};则该数组长度为。

A.4 B.5 C.6 D.7

5、下列二维数组的创建中错误的是。

A.int a[][]=new int[3][] ;

B.int[][] a=new int[3][4] ;

C.int a[][]={{1,2},{3,4}} ;

D.int [][] a=new int[][];

三、编程题

1.编写一个程序,计算一维数组中的最大值、最小值及其差值。

2.将一个数组中的数逆序重新存放。

3.已知数组(12,23,26,45,58,60)是有序的,输入一个数x,将它插入到数组中,保证数组仍然是有序的。

4.输出杨辉三角形。如:

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

……

5.求一个二维数组的每行最大数。

**专题5 面向对象

一、填空题

1.如果一个方法不返回任何值,则该方法的返回值类型为。

2.如果子类中的某个方法名、返回值类型和_传递参数_______与父类中的某个方法完全一致,则称子类中的这个方法覆盖了父类的同名方法。

3.接口中所有的属性均为_公有__、__静态_____和_常量_____的

4.?方法是一种仅有方法声明,没有具体方法体和操作实现的方法,该方法必须在类之中定义。

5.在Java程序中,通过类的定义只能实现重继承,但通过的定义可以实现

多重继承关系。

6.一般Java程序的类主体由两部分组成:一部分是,另一部分是。7.分别用关键字来定义类,用关键字来分配实例存储空间。

8.当一个类的修饰符为时,说明该类不能被继承,即不能有子类。

9.在Java中,能实现多重继承效果的方式是。

二、选择题

1.方法内定义的变量()。

A.一定在方法内所有位置可见B.可能在方法的局部位置可见

C.在方法外可以使用D.在方法外可见

2.方法的形参()。

A.可以没有B.至少有一个

C.必须定义多个形参D.只能是简单变量

3.return语句()。

A.不能用来返回对象B.只可以返回数值

C.方法都必须含有D.一个方法中可以有多个

4.main()方法的返回值类型是(。

A.boolean B.int

C.void D.static

5.编译并运行下面的程序,运行结果是()。

public class A{

public static void main(String args[]){

A a=new A();

a.method(8);

}

void method(int i){

“int: ”+i);

}

void method(long i){

“long: ”+i);

}

A.程序可以编译运行,输出结果为:“int: 8”

B.程序可以编译运行,输出结果为:“long: 8”

C.程序有编译错误,因为两个method()方法必须定义为静态(static)的

D.程序可以编译运行,但是没有输出

6.能作为类及其成员的修饰符是()。

A.interface B.class

C.protected D.public

7.下列方法定义中,方法头不正确的是()。

A.public static x(double a){…} B.public static int x(double y){…} C.void x(double d){…} D.public int x(){…}

8.构造方法在()时被调用。

A.类定义时B.使用对象的变量时

C.调用对象方法时D.创建对象时

9.下列哪个类声明是正确的()。

A.public abstract class Car{…} B.abstract private move(){…} C.protected private number; D.abstract final class H1{…}

10.下列不属于面向对象程序设计的基本特征的是()。

A.抽象B.封装

C.继承D.多态

11.请看下面的程序段

class Person{

String name,department;

int age;

public Person(String n){name=n;}

public Person(String n,int a){name=n; age=a;}

public Person(String n, String d, int a ){

//doing the same as two arguments version if constructer

}

下面那个选项可以添加到// doing the same……处()

A.Person(n,a)B.this(Person(n,a))

C.this(n,a) D.this(name.age)

12.请看下面的程序段

class Test{

private int m;

public static void fun(){

//some code

}

}

方法fun()如何来访问变量m()

A.将private int m 改成protected int m B.将private int m 改成public int m C.将private int m 改成static int m D.将private int m 改成int m 13.有一个类A,对于其构造函数的声明正确的是()。

A.void A(int x){…} B.public A(int x){…}

C.A A(int x){…} D.int A(int x){…}

14.请看下面的程序段

public class Test{

long a[]=new long[10];

pubic static void main(String args[]){

}

}

哪一个选项是正确的()。

A.不输出任何内容B.输出0

C.当编译时有错误出现D.当运行时有错误出现

15.关键字()表明一个对象或变量在初始化后不能修改。

A.extends B.final

C.this D.finalize

16.声明为static的方法不能访问()类成员。

A.超类B.子类

C.非static D.用户自定义类

17.定义类A如下:(重要)

class A{

int a,b,c;

public void B(int x,int y, int z){ a=x;b=y;c=z;}

}

下面对方法B的重载哪些是正确的()。

A.public void A(int x1,int y1, int z1){ a=x1;b=y1;c=z1;}

B.public void B(int x1,int y1, int z1){ a=x1;b=y1;c=z1;}

C.public void B(int x,int y){ a=x;b=y;c=0;}

D.public B(int x,int y, int z){ a=x;b=y;c=z;}

18.编译运行下面的程序,结果是()。(重要)

public class A{

public static void main(String args[]){

B b=new B();

b.test();

}

void test(){

}

}

class B extends A{

void test(){

super.test();

}

}

A.产生编译错误B.代码可以编译运行,并输出结果:AB C.代码可以编译运行,但没有输出 D.编译没有错误,但会产生运行时异常19.已知类关系如下:

Class Employee{}

Class Manager extends Employee{}

Class Director extends Employee{}

则下列语句正确的是:()。

A.Employee e=new Manager();B.Director d=new Manager();

C.Director d =new Employee ();D.Manager m=new Director ();

20.接口是Java面向对象的实现机制之一,以下说法正确的是()。

A.Java支持多重继承,一个类可以实现多个接口

B.Java只支持单重继承,一个类可以实现多个接口

C.Java只支持单重继承,一个类可以实现一个接口

D.Java支持多重继承,但一个类只可以实现一个接口

21.下列方法的声明中不合法的是。

A.float area( ){…}B.void area( ){…}

C.area{…}D.int area(int r){…}

22、下面哪个包是编程时不需要导入就可以直接使用的。

A.https://www.doczj.com/doc/ec3255771.html, B.https://www.doczj.com/doc/ec3255771.html,ng C.java.sql D.java.util

23、调用构造方法是在。

A.类定义时B.创建对象时

C.调用对象的方法时D.使用对象的变量时

24、在子类构造方法的哪个地方可以调用其父类的构造方法。

A.任何地方

B.构造方法的第一条语句

C.构造方法的最后一条语句

D.无法在子类构造方法中调用父类的构造方法

25、关于Java中的继承,下列说法错误的是。

A.继承是面向对象编程的核心特征,通过继承可以更有效地组织程序结构。

B.继承使得程序员可以在原有类的基础上很快设计出一个功能更强的新类,而不必从头开始,避免了工作上的重复。

C.每一次继承时,子类都会自动拥有父类的属性和方法,同时也可以加入自己的一些特性,使得它更具体、功能更强大。

D.继承一般有多重继承和单一继承两种方式,在单一继承中每一个类最多只有一个父类,而多重继承则可以有多个父类。Java中的类都采用多重继承。

26、当方法中的局部变量与成员变量同名时,必须使用下列哪一个关键字指出成员变量。

A.static B.super C.this D.new

27、什么样的方法不能被重写。

A.私有(private)方法B.最终(final)方法C.受保护(protected)的方法D.以上都不对

28、下列有关抽象类与接口的叙述中正确的是哪一个。

A.抽象类中必须有抽象方法,接口中也必须有抽象方法

B.抽象类中可以有非抽象方法,接口中也可以有非抽象方法C.含有抽象方法的类必须是抽象类,接口中的方法必须是抽象方法D.抽象类中的变量定义时必须初始化,而接口中不是

29、从下列程序中你发现了几处错误。

abstract class A{

a bstract void f(){};

public abstract void k();

}

class B extends A{

p rotected void f(){ }

void k(){

}

public static void main(String[] args) {

A a=new A();

a.f();

a.k();

}

}

A.1 B.2 C.3 D.4 30、下列程序运行的结果是。

interface InterfaceA{

S tring s="good ";

v oid f();

}

class ClassA implements InterfaceA{

public void f(){

s);

}

}

class ClassB{

v oid g(InterfaceA a){

a.f();

}

}

public class E {

p ublic static void main(String[] args) {

ClassB b=new ClassB();

b.g(new ClassA());

}

}

A.good B.编译正确,但无运行结果

C.编译错误:b.g(new ClassA()) D.以上都不对

31、下列类的声明中不合法的是。

A.class People(){…} B.class 植物{…}

C.class A{…} D.public class 共有类{…}

32、能作为类的修饰符, 也能作为类成员的修饰符的是。

A.public B.extends C.Float D.static

33、试完成下述程序片段。

public class Point{

int x,y;

public Point(int x,int y){

( )=x;

( )=y;

}

......

}

A.Point.x Point.y B.this.x this.y

C.super.x super.y D.无解

34、在JAVA 中,下列说法正确的是:。

A.一个子类可以有多个父类,一个父类也可以有多个子类

B.一个子类可以有多个父类,但一个父类只可以有一个子类

C.一个子类只可以有一个父类,但一个父类可以有多个子类

D.上述说法都不对

35、Father和Son是两个java类,下列哪一选项正确的标识出Father是Son的父类?A.class Son implements Father B.class Father implements Son

C.class Father extends Son D.class Son extends Father

36、重载指的是方法具有相同的名字,但这些方法的参数必须不同。下列哪种说法不属于方法参数的不同。

A.形式参数的个数不同。B.形式参数的类型不同。

C.形式参数的名字不同。D.形式参数类型的排列顺序不同。

37、下列有关抽象类与接口的叙述中正确的是哪一个。

A.抽象类中必须有抽象方法,接口中也必须有抽象方法

B.抽象类中可以有非抽象方法,接口中也可以有非抽象方法

C.含有抽象方法的类必须是抽象类,接口中的方法必须是抽象方法

D.抽象类中的变量定义时必须初始化,而接口中不是

38、从下列程序中你发现了几处错误。

abstract class A{

abstract void f(){};

public abstract void k();

}

class B extends A{

protected void f(){ }

void k(){

}

public static void main(String[] args) {

A a=new A();

a.f();

a.k();

}

}

A.1 B.2 C.3 D.4

39、关于接口的定义和实现,以下描述正确的是。

A.接口定义的方法只有定义没有实现

B.接口定义中的变量都必须写明final和static

C.如果一个接口由多个类来实现,则这些类在实现该接口中的方法时采用统一的代码D.如果一个类实现接口,则必须实现该接口中的所有方法,但方法未必申明为public

三、阅读程序题

1、写出运行结果:。

public class Computer{

String mainbord,cpu;

public Computer(String s1,String s2){

mainbord=s1;

cpu=s2;

}

public static void main(String[]args){

Computer c=new Computer("华硕","Intel");

,cpu:"+c.cpu);

}

}

2、写出运行结果:。

public class ExamA {

private static int arr[] = new int[5];

public static void main(String args[]) {

for(int i=arr.length-1;i>=0;i--)

arr[i] = 2*i+1;

String output = "0";

int sum = 0;

for(int i=0;i

sum += arr[i];

output += " + " + arr[i];

}

output += " = "+sum;

System.exit(0);

}

}

3、写出运行结果:。

public class Person{

String name;

int age;

public Person(String name,int age){

https://www.doczj.com/doc/ec3255771.html,=name;

this.age=age;

}

public static void main(String[]args){

Person c=new Person("Peter",17);

}

}

4、写出运行结果:。

public?? class?? abc{

public?? static?? void??? main(String?? args[ ]) {

SubSubClass?? x = new?? SubSubClass(10 , 20 , 30);

x.show();

}

}

class?? SuperClass{???

int?? a,b;

SuperClass(int aa , int?? bb){??

a=aa;?? b=bb;??

}

void?? show( ){??

b="+b);??

}

}

class??? SubClass??? extends??? SuperClass{??

int c;

SubClass(int?? aa,int?? bb,int?? cc){

??? super(aa,bb);

c=cc;

}

}

class SubSubClass extends SubClass{

int a;

SubSubClass(int aa,int bb,int cc){

super(aa,bb,cc);

a=aa+bb+cc;

}

void show(){

b="+b+" c="+c);

}

}

5.下面是一个类的定义,请将其补充完整

class ______{

String name;

int age;

Student(______ name, int a){

_____.name=name;

age=a;

}

}

6.下面是一个类的定义,请将其补充完整

class ______{

String s;

______ int a=3;

A(String s){

this.s=s;

}

static int getA(){

return a;

}

}

四、编程题

1.按要求编写一个Java应用程序:

(1)定义一个接口CanCry,描述会吼叫的方法public void cry()。

(2)分别定义狗类(Dog)和猫类(Cat),实现CanCry接口。实现方法的功能分别为:

打印输出“我是狗,我的叫声是汪汪汪”、“我是猫,我的叫声是喵喵喵”。

(3)定义一个主类G,

①定义一个void makeCry(CanCry c)方法,其中让会吼叫的事物吼叫。

②在main方法中创建狗类对象(dog)、猫类对象(cat)、G类对象(g),用g 调用makecry方法,让狗和猫吼叫。

2、编写一个Java程序,并满足如下要求:

1)编写一个Car类,具有:

属性:品牌(mark)——String类型

功能:驾驶(void drive( ))

2)定义Car类的子类SubCar,具有:

属性:价格(price)、速度(speed)——int型

功能:变速(void speedChange(int newSpeed)),把新速度赋给speed 3)定义主类E,在其main方法中创建SubCar类的两个对象:aodi和benchi的对象并测试其对象的特性。

4)输出效果如下:

3.某公司正进行招聘工作,被招聘人员需要填写个人信息,编写“个人简历”的封装类。包括如下属性和对属性进行操作的方法。

String xm;// 姓名

String xb;// 性别

int nl;// 年龄

String jtzz;// 家庭住址

String xl;// 学历

4.编写程序,提供实现各种数学计算的方法。包括如下几项。

(1)两个数的加、减、乘、除。

(2)求某数的相反数、倒数、绝对值。

(3)取两数中较大的和较小的。

(4)对浮点数(double型)的计算功能。如:给定浮点数d,取大于或等于d的最小整数,取小于或等于d的最大整数,计算最接近d的整数值,计算d的平方根、自然对数log(d)等。

(5)计算以double型数a为底数,b为指数的幂。

5.编写一个抽象类Shape,声明计算图形面积的抽象方法。再分别定义Shape的子类Circle(圆)和Rectangle (矩形),在两个子类中按照不同图形的面积计算公式,实现Shape类中计算面积的方法。

6.定义一个接口,接口中有3个抽象方法如下。

(1)“long fact(int m);”方法的功能为求参数的阶乘。

(2)“long intPower(int m,int n);”方法的功能为求参数m的n次方。

(3)“boolean findFactor(int m,int n);”方法的功能为判断参数m加上参数n的和是否大于100。

定义类实现该接口,编写应用程序,调用接口中的3个方法,并将调用方法所得的结果输出。

7.创建一个接口IShape,接口中有一个求取面积的抽象方法“public double area()”。定义一个正方形类Square,该类实现了IShape接口。Square类中有一个属性a表示正方形的边长,在构造方法中初始化该

边长。定义一个主类,在主类中,创建Square类的实例对象,求该正方形对象的面积。

8.定义一个人类,包括属性:姓名、性别、年龄、国籍;包括方法:吃饭、睡觉,工作。

(1)根据人类,派生一个学生类,增加属性:学校、学号;重写工作方法(学生的工作是学习)。

(2)根据人类,派生一个工人类,增加属性:单位、工龄;重写工作方法(工人的工作是……自己想吧)。

(3)根据学生类,派生一个学生干部类,增加属性:职务;增加方法:开会。

(4)编写主函数分别对上述3类具体人物进行测试。

JAVA类与对象及数组习题及复习资料

JA V A类和对象及数组习题 一、选择题 (1)下列构造方法的调用方式中,正确的是( D )--原因:在通过new实例化一个类对象时系统会自动调用该类相应的构造方法。 A.按照一般方法调用B.由用户直接调用 C.只能通过new自动调用D.被系统调用 (2)在Java中,能实现多重继承效果的方式是( C )--原因:一个类可以同时实现多个接口。Java接口反映了对象较高层次的抽象,还弥补了Java只支持单继承的不足,可用它来完成多继承的一些功能。 A.内部类B.适配器C.接口D.同步 (3)int型public成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是( D )—原因:java中定义常量用关键字final来定义。 A.public int MAX_LENGTH=100 B.final int MAX_LENGTH=100 C.public const int MAX_LENGTH=100 D.public final int MAX_LENGTH=100 (4)下列叙述中,正确的是( A )—原因:Java严格区分大小写,所以变量number 与Number不相同;Java 中的注释方式除了“//”行注释之外还有段注释“/*-------*/”和文档注释/**-------*/。Java源文件中的public类只能有一个。 A. 声明变量时必须指定一个类型 B. Java认为变量number与Number相同 C. Java中唯一的注释方式是"//" D. 源文件中public类可以有0或多个 (5)下列叙述中,错误的是( D )—原因:子类继承父类,并且可以有自己的成员变量和成员方法。所以可以认为子类是父类的扩展。

实验2:Java面向对象程序设计

实验2:Java面向对象程序设计(一) 实验目的 ●掌握类的定义;掌握构造方法的使用;掌握对象的创建。 ●掌握静态变量与静态方法的使用;了解静态变量和成员变量的区别。 ●熟悉访问修饰符的作用;掌握访问修饰符的使用方法。 ●掌握方法的重载;掌握访问器get/set方法。 实验步骤 一、类和对象的创建 1.创建一个圆类,成员变量有半径radius和圆周率pi,提供计算圆面积的方法,并在main方法中创建圆类的对象,调用其计算面积的方法进行测试。 2.编写上述代码,编译运行代码,查看程序执行结果。 ●试述程序中两个类的各自作用。 ●类Circle都封装了什么?求圆面积的初始数据是通过哪个方法实现的?请修改程序采用构造函数的方法初始化数据。 ●类Circle是如何声明的?在类中都声明了什么?在主函数中是如何创建Circle类对象的? 二、静态变量和静态方法的设计 (一).静态变量和实例变量练习 1.创建一个类,类名为StaticVariableTest,包含static变量和实例变量,类型为int型,在main方法中分别调用这2个变量并且输出结果。 2.部分源代码如下: 3.将上述代码中的main方法补充完整后,编译运行代码,查看程序执行结果。 ●根据完善后的源码,分析调用静态变量和实例变量有什么不同? (二).静态方法和实例方法练习 1.创建一个类,类名为StaticMethodTest,包含一个静态方法和一个实例方法,在main方法中分别调用这个两个方法进行测试。 2.部分源代码如下:

3.将上述代码中的main函数补充完整,编译运行代码,查看程序执行结果。 ●根据完善后的源码,分析如何调用静态方法和实例方法? 三、访问修饰符与方法的重载 (一).访问修饰符练习 1.创建一个Person类,在该类中用不同的访问修饰符设立不同的person属性,再创建一个PersonTest类,包括main方法,在此类中分别访问Person类中各个属性。 2.源代码如下: 3.先填写下面的表格,在预测结果中,如果能打印输出,填写程序输出结果,否则填“N”。 ●记录程序运行结果。 表4-3-1预测和验证结果 4.编写上述代码,编译运行代码。在上表中填写程序验证结果。 ●访问private变量时,编译会出现什么问题,为什么? ●通过什么方式能访问private变量?编程实现访问Person类中的private变量。

JAVA基础-第3章类与对象-练习题-200910

第3章类与对象 一.选择题 1.下列不属于面向对象编程的特性是(D)。 A.封装性 B. 继承性 C. 多态性 D. 编译执行 2.下列类的声明中不合法的是(C)。 A. class People{…} B. class 植物{…} C. Class A{…} D. public class 共有类{… 3.下列方法的声明中不合法的是(C)。 A. float area(){…} B. void area(){…} C. double area(d){…} D. int area(int r){…} 4. 下列构造方法(构造器)的调用中正确的是(C)。 A. 按照一般的方法调用 B. 由用户直接调用 C. 只能通过new自动调用 D. 被系统调用 5.下列程序运行的结果是(A)。 class Book{ int width; int length; } public class A{ static void f(Book p){ p.width=20; p.length=40; } public static void main(String args[]){ Book b=new Book(); b.width=10; b.length=20; f(b); System.out.print(" "+b.width); System.out.print(" "+b.length); } } A. 20 40 B. 10 40 C. 10 20 D. 以上都不对 6.下列程序运行的结果是(D)。 public class A{ static void f(int y){ y=y+10; } public static void main(String args[]){ double x=10; f(x); System.out.println(x); } }

完成Java面向对象程序设计实验课的心得体会范文

Java面向对象程序设计实验课的心得体会经过这几周对Java面向对象程序设计的学习,让我更加了解到Java学习的重要性。 在实验课上,我们完成多个实验,在这个阶段的学习中,我从认识到熟悉,而后到能够自主运用。通过对Java的了解,我发现它确实有很多方便之处,它集抽象性、封装性、继承性和多态性于一体,实现了代码重用和代码扩充,提高了软件开发的效率。对于我们这个专业来说学好Java语言是很重要的,所以在实验的过程中我都尽力理解java编程思想、掌握基本技巧,尽量学到最多的知识。 学习程序设计的基本目的就是培养描述实际问题的程序化解决方案的关键技能,Java面向对象程序设计是一门实践性比较强的课程,在实际中,我们必须把理论和实践结合起来。在实验中,我们理解理论课上的知识,然后运用到实际的操作中,我们必须在现有的理论的基础上,进行实践。多次实验后,也让我看到了现在学习的一个很大弱点:只听不练,永远不会熟练运用;空记技巧,忽略思想,会在多变的习题中十分无奈。 Java思想:Java是一门面向对向语言,他定义一切都是对象面向对象,就是面对现实; 现实中的一切都是对象,他们有分类,就产生了“类”; 他们有不同,类和类之间的不同,使用类来区分; 同一个类中不同的对象的区别,使用成员区分。

所以,面向对象的内部逻辑是分类。 面向对象编程思想就象数学上的一些概念,如:空间、群、环、域等 原始的编程思想就象古典数学,人们只在一个集合上探讨问题,没有系统的方法(即运算)定义,于是仁者见仁、智者见智,这样在一定程度上造成了理论的一种混乱局面,不利于科学的发展。于是近代数学向公理化发展,这是什么意思呢?就是说,人们除了在限定论域(即上面的集合,面向对象也有此概念)外,还在此论域上加进了一套通用的、公认的运算(方法);集合加上集合上定义的运算就构成了数学上的空间、群等,在计算机领域里,就变成为“类”。这种集合上定义了操作的东西利用起来就方便多了,这使得人们讨论问题时都在给定集合的运算能力上下工夫,即有通用性可事半功倍。 面向对象的编程思想就要想近世代数的分析思想,首先要确定“论域”,即工程所涉及到的所有的“对象”,然后要分类处理,把隶属同一类别的对象集合在一起(做成一个集合),定义他们之间的运算性质及可以进行的操作,这样就构建了一个类,当然以后用到这个类的对象时都要通过已经定义了的操作来完成各项功能,这就是常要求的类的“类的成员变量要通过共有函数来操作”。 我想真正的面向对象编程思想不应该是编程思想,应该是面向对象的分析方法才对! 我的理解: 1、将分析过程为抽象的过程:简言之:分成多个小问题(组成部分),

JAVA类与对象及数组习题及答案

JAV A类和对象及数组习题 一、选择题 (1)下列构造方法的调用方式中,正确的是(D )--原因:在通过new实例化一个类对象时系统会自动调用该类相应的构造方法。 A.按照一般方法调用B.由用户直接调用 C.只能通过new自动调用D.被系统调用 (2)在Java中,能实现多重继承效果的方式是(C )--原因:一个类可以同时实现多个接口。Java接口反映了对象较高层次的抽象,还弥补了Java只支持单继承的不足,可用它来完成多继承的一些功能。 A.内部类B.适配器C.接口D.同步 (3)int型public成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是( D )—原因:java中定义常量用关键字final来定义。 A.public int MAX_LENGTH=100 B.final int MAX_LENGTH=100 C.public const int MAX_LENGTH=100 D.public final int MAX_LENGTH=100 (4)下列叙述中,正确的是( A )—原因:Java严格区分大小写,所以变量number 与Number不相同;Java 中的注释方式除了“//”行注释之外还有段注释“/*-------*/”和文档注释/**-------*/。Java源文件中的public类只能有一个。 A. 声明变量时必须指定一个类型 B. Java认为变量number与Number相同 C. Java中唯一的注释方式是"//" D. 源文件中public类可以有0或多个 (5)下列叙述中,错误的是( D )—原因:子类继承父类,并且可以有自己的成员变量和成员方法。所以可以认为子类是父类的扩展。

Java面向对象习题

选择题 1、下列关于变量的叙述哪个是错的?() A. 实例变量是类的成员变量。 B. 在方法中定义的局部变量在该方法被执行时创建。 C. 实例变量用关键字static声明。 D. 局部变量在使用前必须被初始化。 2、在Java语言中,下列哪个包是编译器自动导入的?() A. java.applet B. https://www.doczj.com/doc/ec3255771.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实验 类和对象

一、实验目的 掌握类和对象的定义,以及它们之间的关系 学习类中属性和方法的设计 会用UML图来对类进行描述 熟悉修饰符的作用,会用set/get方法对数据进行封装 二、实验要求 设计一个名为Rectangle的类表示矩形。这个类包括: ?两个名为width和height的私有double型数据域。用来表示宽、高。默认值为1.0。 ?创建默认矩形的无参构造方法。 ?一个创建width和height为指定值的矩形的构造方法。 ?一个名为GetArea()的公有方法返回矩形面积double ?一个静态的Compare方法,比较两个矩形的面积大小是否相等并返回一个布尔型结果,相等返回true,不等返回false; 画出UML 类图,实现Rectangle类,编写测试程序创建两个Rectangle类的对象。第一个对象的width为1,height为1;第一个对象的width为5,height为6。调用compare方法判断两个矩形是否相等并显示结果。 三、实验内容 1.使用Jude工具绘制UML图

2.编写代码实现类Rectangle package edu.neu.li.test; publicclass Rectangle { privatedouble width; privatedouble height; public Rectangle() { this.width = 1.0; this.height = 1.0; public Rectangle(double width, double height) { this.width = width; this.height = width; } publicdouble GetArea() { returnthis.width * this.height ; } publicstaticboolean Compare(Rectangle rec1, Rectangle rec2) { if(rec1.GetArea()==rec2.GetArea()) { returntrue; } returnfalse; } }

java面向对象编程实验报告

java面向对象编程实验报告 篇一:java面向对象编程实验报告 信息工程学院 Java程序设计实验/实习报告 学院:信息工程学院班级:信息112 姓名:吴连梅学号:XX013305 成绩:A 实验二面向对象编程 1.实验目的 (1)掌握类与对象基本知识; (2)Java中的继承机制及包(package)、接口(interface)等的设计方法; (3)掌握static、this、super等关键字的使用; (4)掌握Java中两种比较器的用法。 2.实验内容 实验题 1 定义一个类Book,包含两个属性:一个是private的String类型的属性title、一个是private的float类型的属性listPrice,封装这两个属性的四个方法setTitle()和getTitle()、setListPrice( )和geListPrice ()。 基本要求: (1)设计类Book及类BookManagement,在类BookManagement中输出Book类的对象的两个private属性;

(2)重写父类的toString()方法,实现Book类实例的两个属性的输出。 实验过程: 新建工程后,在工程下面建立一个包Book,在包下再建立一个Book类,类中包含两个属性,一个是private的String类型的属性title、一个是private的float类型的属性listPrice,之后是封装这两个属性的四个方法,用快捷键Alt+Shift+S选择gennerate Getters and Setters,再实验报告的内容与格式按任课教师的要求书写。 然后就是重写父类的toString()方法,用快捷键Alt+Shift+S选择gennerate toString,快捷重写。 这段程序写完是这样的: 接下来便是BookManagement类,在包book下新建一个类BookManagement, 写完的程序是这样的: BookManagement类中创建了书的对象,在主方法中调用output函数,赋值,输出。程序写完后,将其存盘,再进行运行,得出的结果如下: 实验题2 有两个类:MobileManagement和Mobile,分别描述如图 3.4所示两部手机名称及价格,类MobileManagemen(本文来自:小草范文网:java面向对象编程实验报告)t在包,而Mobile在包

JAVA类与对象的创建

试验四 类和对象的创建 一.类的定义 类是组成Java程序的基本要素。类封装了一类对象的状态和方法。类用来定义对象的模板。 类的实现包括两部分:类声明和类体。基本格式为: 修饰符class类名[extends父类名]{ /*类体的内容*/ } 1.类声明 以下是一个类声明的例子。 class People成为类声明,People是类名。习惯上,类名的第一个字母大写,但这不是必须的。类的名字不能是Java中的关键字,要符合标识符规定,即类的名字可以由字母、下划线、数字或美元符号组成,并且第一个字母不能是数字。但给类命名时,最好遵守下列规则: (1)如果类名使用拉丁字母,那么名字的首写字母使用大写字母,如Hello、Time、People等。 (2)类名最好容易识别,当类名由几个“单词”复合而成时,每个单词的首写字母使用大写,如BeijingTi me、AmericanGame、HelloChina等。 2.类体 编写类的目的是为了描述一类事物共有的属性和功能,描述过程由类体来实现。类声明之后的一对大括号“{”、“}”以及它们之间的内容称为类体,大括号之间的内容称为类体的内容。 类体的内容由两部分构成:一部分是变量的定义,用来刻画属性;另一部分是方法的定义,用来刻画功能。 下面是一个类名为“Trapezia”的类,类体内容的变量定义部分定义了4个float类型变量:top、bottom、h igh和laderArea,方法定义部分定义了两个方法:“getArea”和“setHigh”。

二.对象 1.对象的创建 创建一个对象包括对象的声明和为对象分配内存两个步骤。 (1)对象的声明。 一般格式为: 类的名字对象名字; 如: 这里People是类的名字,zhubajie是我们声明的对象的名字。 (2)为声明的对象分配内存。 使用new运算符和类的构造方法为声明的对象分配内存,如果类中没有构造方法,系统会调用默认的构造方法(你一定还记得构造方法的名字必须和类名相同这一规定),如: 例1: 「注」如果类里定义了一个或多个构造方法,那么Java不提供默认的构造方法。 2.对象的使用 对象不仅可以改变自己变量的状态,而且还拥有了使用创建它的那个类中的方法的能力,对象通过使用这些方法可以产生一定的行为。 通过使用运算符“.”,对象可以实现对自己的变量访问和方法的调用。 例2:

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编程面向对象——类与对象的关系 面向对象是一种组件化的设计思想,OOA、OOD、OOP 类与对象是整个面向对象之中最为基础的组成单元,如果需要给划出定义:类就是共性的集合,而对象是某一个性的产物;所有类实际上是用来描述一个对象的结构。 类是通过对象来使用的,而对象是通过类来创建的。 类与对象的基本定义: 在程序中,定义类,可以使用“class 类名称{}”的语法结构完成。 而类之中的组成主要有两点: * Field (属性、成员、变量),就是一推变量的集合 * Method (方法、行为),此时的方法是由对象调用的。 这个类中定义了两个属性和一个方法(可以定义更多属性和方法) *类虽然存在,但是类的使用,必须有对象; 对象的定义格式: 声明并实例化对象: 类名称对象名称 = new 类名称(); 分步完成: 声明对象:类名称对象名称 = null; 实例化对象:对象名称 = new 类名称(); 引用数据类型: 引用数据类型最大的不同在于需要内存的开辟及使用,所以关键字new 的主要功能就是开辟内存空间; 即:只要引用数据类型想使用,就必须使用关键字new 来开辟空间。 当一个对象实例化之后就可以使用以下方式利用对象来操作类的结构: 对象.属性:表示要操作类中属性内容 对象.方法():表示要调用类中的方法内容

内存概念: 堆内存:保存每一个对象的属性内容,堆内存需要用关键字 new 才可以开辟; 栈内存:保存的是一块堆内存的地址。简单的理解,栈内存保存的是对象的名字; 编程中的栈内存和堆内存的操作过程: 引用数据的初步分析: 引用是整个 Java 开发中的核心精髓所在,即:只有掌握了“引用”这一概念之后,才能加入下一步学习,类似C/C++ 中的指针概念。 在所有的引用分析里面,最关键的还是在于关键字 “new ”,每一次使用关键字new ,都会开辟新的堆内存空间,如果你的代码里面声明两个对象,并且使用了关键字new 为两个对象分别实例化操作,那么一定是各自占有各自(独立)的堆内存空间

JAVA面向对象编程测试题

Java 面向对象 一、单选: (1)在JDK1.5.0 安装目录下的bin 文件夹中,下面哪个程序是Java 执行器 (B) A )Javac.exe B )java.exe C)jdb.exe D )javah.exe E)javadoc.exe (E) (2)在JDK1.5.0 安装目录下的bin 文件夹中,下面哪个程序能生成Java 参考文档 A )Java.exe B )javac.exe C)appletviewer.exe D)javah.exe E)javadoc.exe (3)下列数据类型不属于整型的是 (E) A )byte 类型 B )short 类型 C)int 类型 D )long 类型 E)float 类型 (4 )精确保存一个值为“53.21458961”需要用什么数据类型 ( D) A )int 类型 B )long 类型 C)String 类型 D )double 类型 E)以上都可以 (5)循环语句for(int i=0。i<4。i++){}循环的次数为 (D) A )无限次 B )不确定 C)1 次 D )3 次 E)4 次 (6)若i、j 为已定义的整型,下面程序段中循环体执行的次数为 (B) for(i=0。i<5。i++){ for(j=0。j<=i。j++){ } } A )不确定 B )5 次 C)15 次 D )25 次 E)无限次 (7)执行下列程序段后,j 的值变为 (E) int i=1。 int j=10。 do{ j-=i。 i++。 }while(j--<0)。 A )9 B)10 C)-1 D)-2 E)8 (8)执行下列程序段后,y 的值变为 (E) int x,y。 for(y=1,x=1。y<=50。y++){ if(x>=10){

java类和对象的例子

1.实现简易计算器,分别实现两个整数、三个浮点数的加法运算.(用JAVA中的类和对象) 源码如下: package days;//包名自己修改 import java.util.Scanner;//注意别忘记导入这个包名了public class NumSum { public int add(int num1,int num2){ return num1+num2; } public double add(double num1,double num2,double num3){ return num1+num2+num3; } public static void main(String[] args) { // TODO Auto-generated method stub NumSum nc=new NumSum(); NumSum nc1=new NumSum();

//调用2个整数相加的方法 //Scanner是用键盘手动输入数字。 System.out.println("请用键盘手动输入两个整数:"); System.out.println(nc.add(new Scanner(System.in) .nextInt(),new Scanner(System.in).nextInt())); //调用3个浮点数相加的方法 System.out.println("请用键盘手动输入三个浮点数:"); System.out.println(nc1.add(new Scanner(System .in).nextDouble(), new Scanner(System.in).nextDouble( ), new Scanner(System.in).nextDouble())); } }

Java练习题及答案

Java 练习题答案 一、填空 1、对象的状态和行为是对象的主要属性;前者对应类的变 量,行为又称为对象的操作,对应着类的方法。类的定义包括变量声明和方法声明。 2、要嵌入在HTML文件中运行的程序是Java Applet (Java Application 、Java Applet )。 3、安装JDK后,Java 开发工具在Bin 目录。 4、声明接口的保留字是interface 。 5、类的声明“ public class Test extends Applet implements Runable{} ” 中,定义的类名是Test ,其父类是Applet ;实现了Runable 接口。这个类的源程序必须保存为Test.java (写出包括扩展名的文件名)。 6、一个完整的Java 应用程序由一个或多个类组成;其中Java Application 至少有一个主类,这个类中包含一个名为main 的方法 7、JDK下解释执行Java 的程序是java.exe 。 8、语句如下: int[] c1=int[10]; int[] c2={1,2,3,4,5,6,7,8,9,0}; 数组c1 中的元素有10 个;c2 中的元素有10 个; 已初始化赋 值的是c2 (c1 c2 )。 9、执行完下列程序后i 的值为5

int i=0; while(i<5) { i++; 10、运行下列程序段后,结果 c 的取值为120 int a = 100, b = 20,c; char oper ='+'; switch(oper) { case '+': c = a+b; break; case '-': c = a - b; break; default: c = a * b; break; } 11、为了能使用Java 中已提供的类,我们需要用import 语句来引入所需要的类。语句import java.io.* ;中引入了java.io 包的所有类。 二、选择题 1、属于访问控制的关键字是( D )。 A、static B 、final C、abstract D 、private 2、对成员的访问控制保护最强的是(C ) A、public 、 B、缺省、 C private D protected 3、可用做Java 标识符的是( B )。 A、try B_isYour C 2time D my name

Java类与对象实验报告

实验报告 一、实验项目:类与对象 二、实验目的: 1. 学会使用类来封装对象的属性和功能 2. 掌握类变量与实例变量,以及类方法与实例方法的区别 3. 掌握使用package和import语 三、实验器材:计算机、Java编程软件JCreator 四、实验原理(或仪器装置图): 1. 类与对象 类是组成Java程序的基本要素。类封装了一类对象的状态和方法。类是用来定义对象的模板。 类声明 class 类名{ 类体 } 对象的声明 一般格式为: 类的名字对象名字; 定义对象引用后,用new运算符完成对象的创建工作,分配存储空间,并对其初始化。 变量名=new 类名([构造方法实参表]); 对象的使用 访问成员的基本语法形式如下:

对象名.变量成员名 对象名.方法成员名([实际参数表]) 2.成员变量和局部变量 成员变量格式:[修饰符] 变量类型变量名[=初值]; 成员方法: 格式:[修饰符] 返回值的数据类型方法名(参数1,参数2,…) { 语句序列; return[表达式]; } 类中定义的变量是成员变量,而方法中定义的变量是局部变量。 3. 构造方法 构造方法是一种特殊的方法,创建对象时被自动调用。与一般的方法不同,它没有返回值类型的说明,方法体中也不可以用return语句带回返回值。构造方法的方法名与类名相同在构造方法中可以通过this关键字调用该类中其他的构造方法。 4.包 包是Java语言中有效地管理类的一个机制。 ①通过关键字package声明包语句。package 语句作为Java源文件的第一条语句,指 明该源文件定义的类所在的包。package语句的一般格式为:package 包名; ②import 语句:使用import 语句可以引入包中的类。 五、实验步骤及数据记录: 1.定义一个圆柱体类Cylinder,并创建相应的对象,然后计算圆柱体的底面积与体积。

JAVA类与对象习题

JAVA类与对象习题 一、写出一个类People,并由该类做基类派生出子类Employee和Teacher。其中People 类具有name、age两个保护成员变量,分别为String类型、整型,且具有公有的getAge 成员函数,用于返回age变量的值。Employee类具有保护成员变量empno,Teacher类有teano和zc成员变量。 二、(1)创建Rectangle类,添加属性width、height; (2)在Rectangle类中添加两种方法计算矩形的周长和面积; (3)编程利用Rectangle输出一个矩形的周长和面积 三、(1)设计一个User类,其中包括用户名、口令等属性以及构造方法(至少重载2 个)。获取和设置口令的方法,显示和修改用户名的方法等。编写应用程序测试User 类。 (2)定义一个student类,其中包括用户名、姓名、性别、出生年月等属行以及init()——初始化各属性、display()——显示各属性、modify()——修改姓名等方法。实现并测试这个类。 (3)从上题的student类中派生出Granduate(研究生)类,添加属性:专业subject、导师adviser。重载相应的成员方法。并测试这个类。 四、项目名称:Bank Account Management System 银行账户管理系统简称BAM 练习1:(面向对象基础语法) 写一个账户类(Account), 属性: id:账户号码长整数 password:账户密码 name:真实姓名 personId:身份证号码字符串类型 email:客户的电子邮箱 balance:账户余额 方法: deposit: 存款方法,参数是double型的金额 withdraw:取款方法,参数是double型的金额

实验3 Java类与对象

实验三类与对象 一、实验目的 1、掌握类和构造方法的定义 2、理解静态和非静态成员变量的区别 3、掌握创建类实例的方法 4、理解Java中包的概念及其使用方法 二、实验要求 1.写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width 和height都是double型的,而color则是String类型的。要求该类具有: (1)使用构造函数完成各属性的初始赋值 (2)使用getter和setter的形式完成属性的访问及修改 提供计算面积的getArea()方法 public class mianji { private double height; private double width; private String color; public double getHeight() { return height; } public void setHeight(double height) { this.height = height; } public double getWidth() { return width; } public void setWidth(double width) { this.width = width; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public mianji(double width,double height,String color){ this.setColor(color); this.setHeight(height); this.setWidth(width); } public void getArea(){ double area=0; area=this.height*this.width; System.out.println("矩形的面积为"+area); } public String toString(){ String recStr="矩形的高度:"+this.getHeight() +"宽度:"+this.getWidth() +"颜色:"+this.getColor(); return recStr; } public static void main(String[] args) { mianji rec=new mianji(3, 4, "红色"); rec.getArea(); System.out.println(rec.toString());}

JAVA类与对象实验报告(2)

西安财经学院信息学院 《Java 程序设计》 实验报告 实验名称 类与对象 实验室 实验楼521 实验日期 2012年4月10日 类与对象 一、实验目的 1、掌握类的定义和使用,编写构造方法及成员方法。 2、能够创建类的实例,掌握对象的声明和不同访问属性的成员访问方式。 3、会定义接口、实现接口。 二、实验内容 1. 在java 中,定义一个接口,声明计算图形面积和周长的抽象方法,再用类去实现这个接口,再编写一个测试类去使用这个接口。 2. 设计并实现一个课程类,代表学校中的一门课程,将这门课程的相关信息组成该类的属性(如课程代码、课程名称、课程类别、学时、学分等),并在类中定义各个属性相关的访问方法(如获取和设置课程代码、课程名称,课程类别,获取和修改学时、学分,打印输出课程基本信息等),最后使用主函数测试此类(包括创建对象,调用相应方法等)。 三、实验环境 以Windows 环境为平台,使用JDK 5.0 四、实验步骤 姓名 学号 班级 年级 指导教师

五、实验结果 六、小结 通过掌握类的定义和使用,编写构造方法并且实现创建类的实例,掌握对象的声明和不同访问属性的成员访问方式以及定义接口、实现接口,通过此次实验让我发现了我对类的定义及其运用都不够熟练,对课本的熟悉度还远远不够,在课后应该及时的复习和上机操作是我们的必修课,这样才能让我们进一步的掌握类与对象。

七、源程序 1、interface Shape{ //定义Shape接口 final double pi=3.14; //数据成员一定要初始化 public abstract double area(); public abstract double girth(); //抽象方法,不需要定义处理方式} class Circle implements Shape{ double radius; public Circle(double r){ //构造方法 radius=r; } public double area(){ return (pi * radius * radius); } public double girth(){ return (2 *pi * radius); } } public class InterfaceTester { public static void main(String args[]){ Circle cir=new Circle(3.0); System.out.println("Area of cir = " + cir.area());

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

第一章J a v a简介 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 6. Java编译器会将Java程序转换为(选择一项) A. 字节码 B. 可执行代码 C. 机器代码 D. 以上所有选项都不正确 【解析】A 7. Java源代码文件的扩展名为(选择一项) A. .class B. .java C. .com 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 【解析】AB 3. 下列代码的输出结果是(选择一项) 【解析】A 4. 以下关键字(选择一项)用于终止循环语句 A. break B. exit C. end D. terminate 【解析】A

JAVA实验报告_实验3_类与对象_

Java Object-Oriented Programming Experimental Report

System.out.println ("Your lucky numbers are " + lucky1 + ", " + lucky2 + ", and " + lucky3); } } 3.2 Working with Strings(Choose to do) 3.3 Rolling Dice 3.4 Computing Distance 3.5 formatting Output

3.6 Playing with Cards(Choose to do) 3.7 Experimenting with the Integer Class(Choose to do) 3.8 Nested Panels (1)宽度两倍 (4)添加主界面宽度高度设定 (5)添加MyPanels

4.Experimental results and data processing 5.Analysis and discussion Score: 6.Teacher Reviews Signature: Date: Experimental Report List 1Exercises 1) Source code list 3.3 package test_java_03; import java.util.Random; public class point3_3 {

public static void main(String[] args) { Random ger = new int lucky1, lucky2, lucky3; lucky1 = ger.nextInt(6)+1; lucky2 = (int)(ger.nextFloat()*6)+1; lucky3 = (int)(ger.nextFloat()*10)+20; System.out.print(lucky1+lucky2); } } 3.4 package test_java_03; import java.util.Scanner; public class point_3_4 { public static void main (String[] args) { double x1, y1, x2, y2; double distance; Scanner scan = new Scanner(System.in); System.out.print ("Enter the coordinates of the first point " + "(put a space between them): "); x1 = scan.nextDouble(); y1 = scan.nextDouble(); System.out.print ("Enter the coordinates of the second point: "); x2 = scan.nextDouble(); y2 = scan.nextDouble(); double y=Math.abs(y2-y1)*Math.abs(y2-y1),x=Math.abs(x2-x1)*Math.abs(x2-x1); double z=Math.sqrt(y+x); System.out.print("The distance between the two points is "+z); } } 3.5 package test_java_03; import java.util.*; import java.text.NumberFormat; import java.text.DecimalFormat; public class point_3_5 { public static void main (String[] args) { final double OUNCES_PER_POUND = 16.0; double pricePerPound; double weightOunces;

相关主题
文本预览
相关文档 最新文档