JAVA基础-第3章类与对象-练习题-200910
Java语言程序设计3-2-java第三章(类与对象)
double a,b; public OneRoot(double a,double b) {
this.a=a; this.b=b; } void Print() {
第3章 类与对象 System.out.println("两个相等实根:"+(-b/(2*a))); }
简单的形式: class 类名{ 类体 }
第3章 类与对象
类体部分定义类的变量和方法。变量描述该类对 象的属性,方法描述对象的行为特征,类似于C语言的 函数。Java语言中没有独立的函数和过程,所有的子 程序都是作为方法定义的。例如,3.2节案例中类 ComplexRoot的方法Print,同样Java语言也没有C语言 中的全局变量。
} public class Equation {
double a,b,c; Equation(double a,double b,double c) {
this.a=a; this.b=b; this.c=c; }
第3章 类与对象
void Solve() { double disc=b*b-4*a*c; if(Math.abs(disc)<1E-6){ OneRoot o=new OneRoot(a,b); o.Print(); } else if(disc>1E-6){ RealRoot r=new RealRoot(a,b,disc); r.Print(); }
第3章 类与对象
Java语言通过类来实现封装,类中定义的属性和 方法分为私有的和公有的,私有属性和方法不能在对 象的外部访问,只能由类内的方法访问。而在对象的 外部,只能访问对象的公有属性和方法,只需要知道 公有属性的数据类型和名字以及公有方法的原型,至 于这些方法是如何实现的对象外部并不需要知道。这 就像人们在使用电视机时只需要通过遥控器来操作即 可,至于电视机内部细节用户则无需知道,这里遥控 器上的按钮实际上就是电视机的外部接口。
java基础练习题带答案.doc
java基础练习题带答案第1章Java开发入门一、填空题1、Java EE、Java SE、Java ME2、JRE3、javac4、bin5、path> classpath二、选择题1、A BCD、C、D、B、 B三、简答题1、面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。
2、JRE,它相当于操作系统部分,提供了Java程序运行时所需要的基本条件和许多Java基础类,例如,10类、GUI控件类、网络类等。
JRE是提供给普通用户使用的,如果你只想运行别人开发好的Java程序,那么,你的计算机上必须且只需安装JRE。
JDK,它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java开发人员使用的。
初学者学习和使用Java语言时,首先必须下载和安装JDKo JDK中已经包含了JRE部分,初学者安装JDK后不必再去下载和安装JRETo四、编程题public class HelloWorld {} public static void main { } System, out. printin;第2章Java编程基础一、填空题1、class2、true 和false3、单行注释、多行注释、文档注释4、基本数据类型、引用数据类型5、1、2、4、86、& && |7、08、9、10、6二、判断题1、错、对、错、对、错三、选择题1、AD、AD、C、ABCD、 C 、A、AC、A、 B 10、A四、程序分析题1、编译不通过。
int值4和b相加时,由于变量b 的类型为byte,取值范围没有int类型大,存不下int 类型的值,因此编译不通过。
2、编译不通过。
这是因为y是在最里层的代码块中定义的一个变量,只有在那个代码块中才可使用,在使用y = x;语句时已经超过了y变量的作用域,所以编译无法通过。
3、打印结果为:3o4、打印结果为:987五、问答题1、J ava语言的八种基本数据类型有:byte字节型,占一个字节。
java类与对象选择题附加答案解析
Java 类与对象选择题练习附加答案解析1. 以下关于Java类的描述,正确的是:A. 类是对象的实例。
B. 类可以包含属性和方法。
C. 类不能继承其他类。
D. 类只能包含一个方法。
答案: B。
解析:类是对象的蓝图或模板,可以包含属性(成员变量)和方法(成员函数)。
2. 在Java中,要创建一个类的对象,应使用哪个关键字?A. newB. createC. instantiateD. make答案: A。
解析:在Java中,使用`new`关键字来创建类的对象。
3. 在以下关于构造方法的描述中,正确的是:A. 构造方法必须有返回类型。
B. 构造方法的名称必须与类名相同。
C. 构造方法可以是静态的。
D. 构造方法可以重载但不能覆盖。
答案: B。
解析:构造方法的名称必须与类名相同,并且没有返回类型(包括void)。
构造方法可以重载(多个同名但参数不同的方法),但不能覆盖(重写父类方法)。
4. 如果`MyClass`类有一个名为`display`的方法,且`myObject`是`MyClass`类的一个实例,如何调用该方法?A. display();B. MyClass.display();C. myObject.display();D. MyClass::display();答案: C。
解析:通过对象实例`myObject`来调用类的非静态方法`display`。
5. 以下哪个选项是关于`this`关键字的正确描述?A. `this`关键字指向类的超类(父类)。
B. `this`关键字只能在静态方法中使用。
C. `this`关键字引用当前对象的实例。
D. `this`关键字用于创建新的对象。
答案: C。
解析:`this`关键字引用当前对象的实例,可以在类的方法和构造方法中使用来引用当前对象的成员变量或方法。
6. 在Java中,如果类B继承自类A,且类A是基类,则下列哪个选项是正确的?A. 类B是类A的超类。
《类与对象》课后习题(含答案)
问题一:程序执行结果是
问题二:本程序中,y、z 是 class Test{ public: static int Data; }; int Test::Data=100; //A void main(void) { Test t1,t2; t1.Data=200; t2.Data=300; //B //C
2、写出程序的输出结果。 #include <iostream> #include <cstring> using namespace std; class SomeClass { int One , Two; public: SomeClass(int a = 1, int b = 1) { One = a; Two = b; cout << "Structor" << endl; } SomeClass(SomeClass &obj) { { cout<<NumA<<'\t'<<"is Destructor."<<endl; } }; int main() { MyTestClass Myclass1(5), Myclass2.Print(); return 0; } 程序的运行结果为: Myclass2(Myclass1);
,第二行是
A.show( ); } 15 10 三、程序填空题
B.show( );
1、完成如下的类,在横线中填写合适的内容。 #include <iostream> #include <cstring> using namespace std; enum Esex{mid , man , woman};//枚举请自学 2.7 class Person { int Num; //编号 char Name[12]; //姓名 Esex Sex; //性别 float Weight; //体重 public: Person(int , char * , Esex , float); Person(); ~Person() {} void PrintInfo(); int Workdays(); }; Person::Person( { Num = id; int id ,char *name , Esex s , float w)
java类和对象练习题
1.在如下所示的JAVA代码中,this关键字是指〔B〕.public class Person{private String name;public void setName<String name>{=name;}}<选择一项>〔选择一项〕A> Person类B> Person类自身对象的引用C> setName<>方法的参数nameD> setName<>方法2.以下对于JAVA中构造方法说法正确的是<C>.〔选择一项〕A> 构造方法的名字可以与类名不一致B> 构造方法不能被重载C> 一个类必须包含至少一个构造方法D> 构造方法可以有返回值类型3.以下关于JAVA中的构造方法表述错误的是〔B〕.〔选择一项〕A> 构造方法的名字和类名相同B> 构造方法不能被重载C> 构造方法的作用主要是在创建对象时执行一些初始化操作D> 构造方法没有返回值类型4.以下关于java中的方法重载说法错误的是〔D〕.〔选择一项〕A> 重载的方法其方法名必须相同B> 重载的方法其参数个数或参数类型不同C> 构造方法可以被重载D> 成员方法不可以被重载5.在如下所示的Sample类中,共有〔C〕个构造方法public class Sample{private int x;private Sample<>{x=1;}public void Sample<double f>{this.x=<int>f;}public Sample<String s>{}}〔选择一项〕A> 4B> 3C> 2D> 16.构造方法重载的要素不包括〔B〕〔选择一项〕A> 方法名与类名相同B> 返回值类型不同C> 参数列表不同D> 在同一个类中7.给定如下JAVA代码,编译运行,结果将是<B> public class Sample{public double result<double d1,double d2>{ return d1<d2 ? d1 : d2;}public double result<int d1,double d2>{ return d1<d2 ? d1 : d2;}public double result<int d1,int d2>{ return d1-d2;}private int result<int i>{return i;}public static void main<String [] args>{ Sample s=new Sample<>;System.out.print<s.result<2,3.0>+",">; System.out.print<s.result<4.0,4.5>+",">; System.out.print<s.result<10,9>>;}}〔选择一项〕A> 3.0 , 4.0, 1B> 2.0, 4.0, 1C> 3.0, 4.5, 1D> -1, 4.0, 18.给定如下Java代码,下列〔〕方法可以加入到Sample类中,并且能够编译正确. public class Sample { cpublic int getSomething<int d> {return d;}}〔选择一项〕A> private int getSomething<int i, String s> {}B> public void getSomething<int i> {}C> private int getSomething<int i, String s> { return 20; }D> public double getSomething<> {return "abc"; }9.构成方法重载的要素不包括〔A〕.〔选择一项〕A> 方法名与类名相同B> 参数列表不同C> 在同一类中D> 方法名称相同10.在以下Java程序的方法中,两个方法之间属于方法重载的是〔〕.〔选择二项〕acA> int f1<>{}int f1<int a>{}B> void f1<int a>{}int f1<int a>{}C> void f1<>{}int f1<int a>{}D> int f1<int b>{}int f1<int a>{}11.关于java 中的静态方法,以下说法中正确的是〔AC〕〔选择二项〕A> 静态方法中不能直接调用非静态方法B> 非静态方法不能直接调用静态方法C> 静态方法可以用类名直接调用D> 静态方法里可以使用this12.以下代码输出结果为〔C〕.public class Animal {int age = 9;public Animal<int age> {this.age = age;}public static void main<String[] args> {Animal animal =new Animal<>;System.out.println<animal.age>;}}〔选择一项〕A> 9B> 0C> 编译出错D> null13.编译运行如下java代码,输出结果是〔A〕class Person{String name = "person";public void shout<>{System.out.print<name>;}}class Student extends Person{String name = "student";String school = "school";}public class Test{public static void main<String[] args>{ Person p = new Student<>;p.shout<>;}}〔选择一项〕A> personB> studentC> person studentD> 编译错误14.编译运行如下java代码,输出结果是〔D〕//父类引用不能访问子类特有的属性class Base{public void method<>{System.out.print<"Base method">;}}class Child extends Base{public void methodB<>{System.out.print<"Child methodB">;}}class Sample{public static void main<String[] args>{Base base = new Child<>;base.methodB<>;}}〔选择一项〕A> Base methodB> Child methodBC> Base method Child methodBD> 编译错误15.下列选项中关于java中this关键字的说法错误的是<B>〔选择一项〕A> this关键字是在对象内部指代对象自身的引用B> this关键字可以在类中的任何位置使用C> this只和特定的对象关联,而不是和类关联D> 同一个类的不同对象有不同的this。
第3章 类与对象习题 参考答案
第3章类与对象习题参考答案一、选择题(共30分,每题1分)二、填空题(共18分,每题1分)1. 不能2. 将对象A复制给对象B3. (1) public (2) 成员函数4. 实例5. 复制(拷贝)6. 类(test )~test()7. 对象类8. 重载返回值参数9.默认(无参)10. ->11. 构造函数12.函数返回类型类名::成员函数名(参数表);13. 常对象14. 对象名15. 析构函数三、改错题(共12分,每题2分)1. void Point(int a)------------Point(int a)cout<<A.Show();----------- A.Show();2. 答案:int i, int j-----------int i, int j=0 //注:只要有一个int类型的数据就行。
分析:调用时,既有一个参数,也有两个参数,且没有重载,所以参数需要带默认值。
3. 答案:swap(&a,&b); ------------swap(a, b);分析函数的形参是变量的引用,调用时的实参应该是地址。
4. #include<iostream.h>class one{ int a1,a2;public:one(int x1=0, int x2=0) //修改1:构造函数的函数体没有{a1=x1;a2=x2;}show() //修改2 定义成员函数{cout<<a1<<endl;cout<<a2<<endl;}};void main(){ one data(2,3);data.show(); //修改3:用对象调用成员函数}5. ABC(int aa)a(aa){} ------------ABC(int aa):a(aa){}分析:构造函数的初始化列表格式错误。
6. 答案:cout<<t1.getmin()<<endl; -----------cout<<t1.GetMin()<<endl;分析:采用默认的访问权限即私有的,在外部无法访问。
JAVA基础-第3章类与对象-练习题-200910
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 40B. 10 40C. 10 20D. 以上都不对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);}}A. 10B. 20C. 10.0D. 程序编译错误7.下列程序运行的结果是(C)。
java类和对象练习题
1.在如下所示的JAVA代码中,this关键字是指(B)。
public class Person{private String name;public void setName(String name){=name;}}(选择一项)(选择一项)A) Person类B) Person类自身对象的引用C) setName()方法的参数nameD) setName()方法2.以下对于JAVA中构造方法说法正确的是(C).(选择一项)A) 构造方法的名字可以与类名不一致B) 构造方法不能被重载C) 一个类必须包含至少一个构造方法D) 构造方法可以有返回值类型3.以下关于JAVA中的构造方法表述错误的是(B)。
(选择一项)A) 构造方法的名字和类名相同B) 构造方法不能被重载C) 构造方法的作用主要是在创建对象时执行一些初始化操作D) 构造方法没有返回值类型4.以下关于java中的方法重载说法错误的是(D)。
(选择一项)A) 重载的方法其方法名必须相同B) 重载的方法其参数个数或参数类型不同C) 构造方法可以被重载D) 成员方法不可以被重载5.在如下所示的Sample类中,共有( C)个构造方法public class Sample{private int x;private Sample(){x=1;}public void Sample(double f){this.x=(int)f;}public Sample(String s){}(选择一项)A) 4B) 3C) 2D) 16.构造方法重载的要素不包括(B)(选择一项)A) 方法名与类名相同B) 返回值类型不同C) 参数列表不同D) 在同一个类中7.给定如下JAVA代码,编译运行,结果将是(B)public class Sample{public double result(double d1,double d2){return d1<d2 ? d1 : d2;}public double result(int d1,double d2){return d1<d2 ? d1 : d2;}public double result(int d1,int d2){return d1-d2;}private int result(int i){return i;}public static void main(String [] args){Sample s=new Sample();System.out.print(s.result(2,3.0)+",");System.out.print(s.result(4.0,4.5)+",");System.out.print(s.result(10,9));}}(选择一项)A) 3.0 , 4.0, 1B) 2.0, 4.0, 1C) 3.0, 4.5, 1D) -1, 4.0, 18.给定如下Java代码,下列()方法可以加入到Sample类中,并且能够编译正确。
Java学习(二).习题
类和对象.习题1、基本概念题:1.什么叫类?什么叫对象?类是相似对象中共同属性和方法的集合体。
对象是类的实例。
2.对象怎样得到内存空间的?垃圾对象怎样回收的?对象的内存空间是在用户需要时,用new运算符创建的。
对象也有作用范围,我们把超出作用范围的对象(或称不再被使用的对象)称作垃圾对象。
在Java中,收集和释放内存是一个叫做自动垃圾回收线程的责任。
自动垃圾回收线程在系统空闲时自动运行,这个线程监视用户程序中所有对象的有效作用范围,当某个对象超出其作用范围时,该线程就对这样的对象做上垃圾对象标识,并在适当的时候一次性回收这些垃圾对象。
3.什么叫引用类型?对象是引用类型吗?所谓引用类型,是指该类型的标识符表示的是一片内存连续地址的首地址。
对象和数组一样,也是引用类型。
即对象定义后,系统将给对象标识符分配一个内存单元,用于存放实际对象在内存中的存放位置。
4.类的修饰符共有几种?分别是什么?类声明的<修饰符>分为访问控制符和类型说明符两部分,分别用来说明该类的访问权限以及该类是否为抽象类或最终类。
访问控制符:private、public和protected类型说明符:abstract和final5.共有几种形式的变量?这些变量各自的用途是什么?变量可分为:static:指明该成员变量是一个类成员变量final:指明该成员变量是常量transient:指明该成员变量是临时变量。
transient很少使用。
6.成员变量和成员方法的修饰符共有几种?各自的访问权限是什么?有private、public和protected三种private:修饰符表示该成员变量只能被该类本身访问,任何其他类都不能访问该成员变量。
protected:修饰符表示该成员变量除可以被该类本身和同一个包的类访问外,还可以被它的子类(包括同一个包中的子类和不同包中的子类)访问。
public:修饰符表示该成员变量可以被所有类访问。
java习题及答案第3章 习题参考答案
第3章习题解答1. Java语言的注释有哪几种?分别给出一个例子。
答:Java语言的注释有3种,分别是单行注释、多行注释和文档注释。
单行注释的例子如下:public static Point origin = new Point(0, 0); //类初始化时,创建一个原点实例多行注释的例子如下:/* 类初始化时,创建一个原点实例 */public static Point origin = new Point(0, 0);文档注释的例子如下:/**** @类名:Point* @类简介:坐标点类,可以初始化其坐标x和y。
* @编程人:林福平* @编程日期:2012-8-9* @修改日期:2012-8-10**/2. Java语言中分隔符有哪几种?空白符有哪些?答:Java语言中的分隔符有空白符、注释和普通分隔符三种。
Java语言中的空白符(White Space)包括空格(SP,space)、制表符(‘\t’,Tab键)、走纸换页(‘\f’)、回车(‘\r’)和换行(‘\n’)。
3. 简述标识符的用途。
下列字符串中,哪些是标识符?PIx2 -length a+b _bytes $long MIN_VALUE答:Java语言中的标识符用于对类、方法、变量、类型、数组和文件等进行命名。
上述字符串中,以下这些是Java语言的标识符:PIx2 _bytes $long MIN_VALUE4. 下列字符串中,哪些是关键字?true for int null $float _double答:上述字符串中,以下这些是Java语言的关键字:true for int null5. Java语言的基本数据类型分为那几大类?答:Java语言的基本数据类型分为数值类型(包括整数类型和浮点类型)、字符类型(char)和布尔类型(Boolean)。
整数类型有byte、 short、 int和long。
浮点类型有float和double。
java类和对象编程练习题.doc
java类和对象编程练习题猜数字游戏:一个类A有一个成员变量v,有一个初值 100o定义一个类,对A类的成员变量v进行猜。
如果大了则提示大了,小了则提示小了。
等于则提示猜测成功。
02.类的成员变量:请定义一个交通工具的类,其中有:属性:速度,体积等等方法:移动),设置速度),加速speedUp,减速speedDown等等. 最后在测试类Vehicle中的main中实例化一个交通工具对象,并通过方法给它初始化speed, size 的值,并且通过打印出来。
另外,调用加速,减速的方法对速度进行改变。
03.类的成员变量与方法、构造方法在程序中,经常要对时间进行操作,但是并没有时间类型的数据。
那么,我们可以自己实现一个时间类,来满足程序中的需要。
定义名为My Time的类,其中应有三个整型成员:时, 分,秒,为了保证数据的安全性,这三个成员变量应声明为私有。
为MyTime类定义构造方法,以方便创建对象时初始化成员变量。
再定义diaplay方法,用于将时间信息打印出来。
为MyTime 类添加以下方法:addSecond addMinute addHour subSecond subMinute subHour分别对时、分、秒进行加减运算。
04.构造方法编写Java程序,模拟简单的计算器。
定义名为Number的类,其中有两个整型数据成员nl 和n2,应声明为私有。
编写构造方法,赋予nl和n2初始值, 再为该类定义加、减、乘、除等公有成员方法,分别对两个成员变量执行加、减、乘、除的运算。
在main方法中创建Number类的对象,调用各个方法,并显示计算结果。
05.构造方法:编写Java程序,用于显示人的姓名和年龄。
定义一个人类,该类中应该有两个私有属性,姓名和年龄。
定义构造方法,用来初始化数据成员。
再定义显示方法,将姓名和年龄打印出来。
在main方法中创建人类的实例,然后将信息显示。
06. get方法和set方法定义一个类,该类有一个私有成员变量,通过构造方法将其进行赋初值,并提供该成员的getXXX和setXXX方法提示:假设有private String name:则有public void setName( this, name - name: } publicString getName( return this, name: }07.构造方法与重载为“无名的粉"写一个类:class WuMingFen要求:1.有三个属性:面码:String theMa 粉的分量:int quantity 是否带汤:boolean likeSoup2.写一个构造方法,以便于简化初始化过程,如:WuMingFen fl - new WuMingFen:.重载构造方法,使得初始化过程可以多样化:WuMingFen f- new WuMingFen;4.如何使得下列语句构造出来的粉对象是酸辣面码、 2两、带汤的? WuMingFen f- new WuMingFen:5.写一个普通方法:check,用于查看粉是否符合要求。
JAVA第三章课后习题解答
System.out.println(s); return s; } }
public class TestStudent { public static void main(String args[]) { student stu = new student("0401398", "杨小明", "男",20); stu.printInfo();
【13】什么是接口?为什么要定义接口?接口和类有什么异同? [解答]:接口是用来调节各类之间的相互关系的一种结构,接口是抽象类的一种,只包含常 量和方法的定义,而没有变量和具体方法的实现,且其方法都是抽象方法。 接口定义的格式如下:
[public] interface 接口名 [extends 父接口名列表]{ … //接口体 } extends 子句有类声明的 extends 子句基本相同,不同的是一个接口可有多个父接口,用 逗号隔开,而一个类只能有一个父类。Java 中的类只能实现单重继承,这虽然可以简化编程, 但毕竟没有完全实现面向对象的功能。定义接口的主要作用,就是帮助 Java 实现类间多重 继承的结构。而且接口还有以下好处:
4
● 接口可以被多个类所实现,这些类可以不相关,从而具有相同的行为。 ● 通过接口可以了解对象的行为,而无需了解对象所对应的类的结构。
习题-类和对象
一、选择题类和对象类的定义:1 定义类头时,不可能用到的关键字是( B )。
A) class B)private/protected/static C)extends/implementsD)public2.下列类定义中,不正确的是( C)。
A) class x { .... }B) class x extends y { .... }C) static class x implements y1,y2 { .... }D) public class x extends Applet { .... }3.下列类头定义中,错误的是(A)。
A)public x extends y {...} (少class)B) public class x extends y {...}C)class x extends y implements y1 {...}D)class x {...}创建声明对象:4.设A为已定义的类名,下列声明A类的对象a的语句中正确的是( D )。
A) float A a; B) public A a=A( );C) A a=new int( ); D) static A a=new A( );5.设A为已定义的类名,下列声明A类的对象a的语句中正确的是( A )。
A) public A a=new A( ); B) public A a=A( );C) A a=new class( ); D) a A;6.设X 、Y 均为已定义的类名,下列声明类X的对象x1的语句中正确的是( C )。
A) public X x1= new Y( ); B) X x1= X ( );C) X x1=new X( ); D) int X x1;7. 设X 、Y为已定义的类名,下列声明X类的对象x1的语句中正确的是( A )。
A) static X x1; B) public X x1=new X(int 123);C) Y x1; D) X x1= X( );8.通过类MyClass中的不含参数的构造方法,生成该类的一个对象obj,可通过以下语句实现:__MyClass obj=new MyClass();构造方法:9. 设i , j为类X中定义的int型变量名,下列X类的构造方法中不正确的是( A )。
JAVA第三章习题答案 (2)
o=cno; ame=cname; this.credit=credit; this.period=period; } public void setCno(String cno){ o=cno; } public String getCno(){ return cno; } public void setCname(String cname){ ame=cname; } public String getCname(){ return cname; } public void setCredit(double credit){ this.credit=credit; } public double getCredit(){ return credit; } public void setPeriod(int period){ this.period=period; } public int getPeriod(){ return period; } public String toString(){ return cno+"\t"+cname+"\t"+credit+"\t"+period; } } 9.设计并实现一个 Box 类。要求:定义 3 个实例变量分别表示 Box 的长、宽和高,并定义 必要的方法。创建一个对象,求给定尺寸的立方体的表面积和体积。 //Box.java public class Box { private double length; private double width; private double height;
10.学生类的创建和使用。 (1)创建一个 Student 类,包括的私有数据成员有学号、姓名、性别、年龄等。 (2)声明一个构造方法,以初始化对象的所有数据成员。 (3)声明分别获得各数据成员(学号、姓名、性别、年龄等)的各个 public 方法。 (4)声明分别修改各数据成员(学号、姓名、性别、年龄等)的各个 public 方法。 (5 ) 声明一个 public 型的 toString( )方法, 把该类中的所有数据成员信息组合成一个字符串。 (6 ) 在类中声明统计班级总人数的私有数据成员 count, 以及获得班级总人数的 public 方法。 (7)将 Student 类放在子包 student 中。 (8 ) 在子包 student 外, 创建测试类 StudentTest。 在测试类中, 使用 Student 类创建多个对象, 测试 Student 类的每个 public 方法。 //Student.java package student; public class Student { private String sno; private String sname; private char ssex; private int sage; private static int count=0; public Student(String no,String name,char sex,int age){ sno=no; sname=name; ssex=sex; sage=age; count++; } public void setSno(String no){ sno=no; } public String getSno(){ return sno; } public void setSname(String name){ sname=name; } public String getSname(){ return sname; } public void setSsex(char sex){ ssex=sex; } public char getSsex(){ return ssex;
类和对象练习题
类和对象一、选择题1、下面对方法的作用描述不正确的是:( d )A、使程序结构清晰B、功能复用C、代码简洁D、重复代码2、方法内定义的变量:( b )A 、一定在方法内所有位置可见B、可能在方法内的局部位置可见C、在方法外可以使用D、在方法外可见3、方法的形参:(a)A、可以没有B、至少有一个C、必须定义多个形参D、只能是简单变量4、方法的调用:(c)A、必须是一条完整的语句B、只能是一个表达式C、可能是语句,也可能是表达式D、必须提供实际参数5、return 语句:( d)A、不能用来返回对象B、只可以返回数值C、方法都必须含有D、一个方法中可以有多个return 语句6、void 的含义:(d)A、方法体为空B、方法体没有意义C、定义方法时必须使用D、方法没有返回值7、main()方法的返回类型是:( c )A 、boolean B、int C、void D、static8、方法重载所涉及的方法:(a)A、有相同的名字B、参数个数必须不同C、参数类型必须不同D、返回类型必须不同9、下面关于类和对象之间关系的描述,正确的是( c )A、联接关系B、包含关系C、具体与抽象的关系D、类是对象的具体化10、下面关于java中类的说法哪个是不正确的( c )A、类体中只能有变量定义和成员方法的定义,不能有其他语句。
B、构造方法是类中的特殊方法。
C、类一定要声明为public的,才可以执行。
D、一个java文件中可以有多个class定义。
11、下列哪个类声明是正确的( d)A、public void H1{…} B 、public class Move(){…}C、public class void number{}D、public class Car{…}12、下面的方法声明中,哪个是正确的(c)A、public class methodName(){}B、public void int methodName(){}C、public void methodName(){}D、public void methodName{}13、下述哪些说法是不正确的?(b )A、实例变量是类的成员变量B、实例变量是用static关键字声明的C、方法变量在方法执行时创建D、方法变量在使用之前必须初始化14、下面对构造方法的描述不正确是( b )。
java基础类和对象-题
java基础类和对象-题1、创建⼀个三⾓形类,成员变量三边,⽅法求周长,创建类主类A来测试它。
public class Sanjiaoxing {//定义属性private int a;private int b;private int c;//getter、setter⽅法public int getA() {return a;}public void setA(int a) {this.a = a;}public int getB() {return b;}public void setB(int b) {this.b = b;}public int getC() {return c;}public void setC(int c) {this.c = c;}//成员⽅法public int Zhouchang(int a,int b,int c){return a+b+c;}}测试:public class TestSanjiaoxing {public static void main(String[] args) {// TODO ⾃动⽣成的⽅法存根Sanjiaoxing a=new Sanjiaoxing();System.out.println("边长为3,4,5的三⾓形的周长是:"+a.Zhouchang(3, 4, 5));}}2、按要求编写Java应⽤程序。
(1)创建⼀个叫做People的类:属性:姓名、年龄、性别、⾝⾼⾏为:说话、计算加法、改名编写能为所有属性赋值的构造⽅法;(2)创建主类:创建⼀个对象:名叫“张三”,性别“男”,年龄18岁,⾝⾼1.80;让该对象调⽤成员⽅法:说出“你好!”计算23+45的值将名字改为“李四”public class People {private String name;private int age;private String sex;private double height;public void shuohua(){System.out.println(name+"说"+"你好!");}People(){}People(String name,int age,String sex,double height){setName(name);setAge(age);setSex(sex);setHeight(height);}public String getName() {return name;}public void setName(String name) { = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public double getHeight() {return height;}public void setHeight(double height) {this.height = height;}public int jisuan(int a,int b){return a+b;}public String gaiName(String name){setName(name);return getName();}}public class TestPeople {public static void main(String[] args) {// TODO ⾃动⽣成的⽅法存根People p=new People();People p2=new People("王五",18,"男",1.56);p.setName("张三");p.setSex("男");p.setAge(18);p.setHeight(1.80);System.out.println("名叫"+p.getName()+"性别"+p.getSex()+"年龄"+p.getAge()+"岁"+"⾝⾼"+p.getHeight());p.shuohua();System.out.println("23+45="+p.jisuan(23, 45));System.out.println("名字改为:"+p.gaiName("李四"));System.out.println("名叫"+p2.getName()+"性别"+p2.getSex()+"年龄"+p2.getAge()+"岁"+"⾝⾼"+p2.getHeight()); }}3、按要求编写Java应⽤程序。
【免费下载】JAVA基础 第3章练习 类与对象
大外软件学院
第 3 章练习 类与对象
其输出结果是什么()。 A. The value is 8 B. The value is 9 C. The value is 10 D. The value is 11
12. 以下代码的调试结果为()。
1: public class Q21
2: {
3:
4:
int maxElements;
} A. 10 B. 20 C. 程序编译错误 D. 以上都不对
8. 以下代码的输出结果为()。
public blic static void main(String args[]){
}
int i=10;
Pass p = new Pass();
10. 关于以下程序代码的说明正确的是()。
1.class HasStatic{
2. static int x=100; int y=0;
3. public static void main(String args[]){
4.
5.
6.
7.
8.
9.
10.
11.
12. }
13.}
HasStatic hs1=new HasStatic();
p.amethod(i);
System.out.println(i+" and "+j);
public void amethod(int x){
}
x=x*2;
j=j*2;
} A.错误: 方法参数与变量不匹配 B. 20 and 40
C. 10 and 40
9. 编译和运行程序会出现什么样的结果()。 public class Ref{ public static void main(String args[]){ Ref r = new Ref(); r.amethod(r); }
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第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 40B. 10 40C. 10 20D. 以上都不对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);}}A. 10B. 20C. 10.0D. 程序编译错误7.下列程序运行的结果是(C)。
public class A{int z=20;static void f(int y){y=z;System.out.println(y);}public static void main(String args[]){f(10);}}A. 10B. 20C. 程序编译错误D. 以上都不对8. 以下代码的输出结果为(C)。
public class Pass{static int j=20;public static void main(String args[]){int i=10;Pass p = new Pass();p.amethod(i);System.out.println(i+" and "+j);}public void amethod(int x){x=x*2;j=j*2;}}A.错误: 方法参数与变量不匹配B. 20 and 40C. 10 and 40D. 10 and 209. 编译和运行程序会出现什么样的结果(A)。
public class Ref{public static void main(String args[]){Ref r = new Ref();r.amethod(r);}public void amethod(Ref r){int i=99;multi(r);System.out.println(i);}public void multi(Ref r){r.i = r.i * 2;}}A.编译出错 B. 输出:99 C. 输出:198 D. 运行出错10. 关于以下程序代码的说明正确的是(D)。
1.class HasStatic{2. static int x=100; int y=0;3. public static void main(String args[]){4. HasStatic hs1=new HasStatic();5. hs1.x++;6. HasStatic hs2=new HasStatic();7. hs2.x++;8. hs1=new HasStatic();9. hs1.x++;10. HasStatic.x- -;11. System.out.println("x="+x);12. }13.}A.5行不能通过编译,因为引用了私有静态变量B.10行不能通过编译,因为x是私有静态变量C.程序通过编译,输出结果为:x=103D.程序通过编译,输出结果为:x=10211. 有如下代码:public class Test {void printValue(int m){do {System.out.println("The value is"+m);}while( --m > 10 );}public static void main(String arg[]) {int i=10;Test t= new Test();t.printValue(i);}}其输出结果是什么(C)。
A. The value is 8B. The value is 9C. The value is 10D. The value is 1112. 以下代码的调试结果为(D)。
1. public class Q212. {3. int maxElements;4.5. void Q21()6. {7. maxElements = 100;8. System.out.println(maxElements);9. }10.11. Q21(int i)12. {13. maxElements = i;14. System.out.println(maxElements);15. }16.17. public static void main(String[] args)18. {19. Q21 a = new Q21();20. Q21 b = new Q21(999);21. }22. }A. 输出 100 和 999B.输出 999 和 100C.第3行出现编译错误, 变量 maxElements 未初始化D. 第19行出现编译错误13. 给出如下类定义:public class test {test(int k) {…}}如果要创建一个该类的对象,正确的语句是(B)。
A. test obj1=new test(); B. test obj1=new test(5);C. test obj1=new test("5 "); D. test obj1=new test(3.4);14. 指出下列哪个方法不能与方法public void add(int a){…}重载(A)。
A. public int add(int b)B. public void add(double b)C. public void add(int a, int b)D. public void add(float g)15.下面程序的输出结果是什么(C)。
class J_Test{int m_i = 2;String m_s = null;J_Test(){m_i = 3;m_s = "constructor";}public static void main(String args[]){J_Test app = new J_Test();System.out.println(app.m_i+app.m_s);}}A. 2nullB. 3nullC. 3constructorD. 以上都不对16. 下面程序的输出结果是什么(A)。
class J_Test{int m_i = 2;String m_s = null;void J_Test(){m_i = 3;m_s = "constructor";}public static void main(String args[]){J_Test app = new J_Test();System.out.println(app.m_i+app.m_s);}}A. 2nullB. 3nullC. 3constructorD. 以上都不对17.下列代码的运行结果是(D)。
public class J_Test{static short m_index;static int m_age;public static void mb_setData(long n){m_index = n;}public static void main(String args[]){mb_setData(98);System.out.println("Index=" + m_index + ";Age="+m_age);}}A. Index = 98 ;Age=0B. Index = 0 ;Age=0C. Index = 0;Age=98D. 以上都不对18.下列程序的运行结果为(B)。
public class J_Test{static char m_name;static int m_age;public static void mb_setData(char n){m_name = n;}public static void mb_setData(int n){m_age = n;}public static void main(String args[]){mb_setData((int)’a’);mb_setData((char)98);System.out.println("Name=" + m_name + ";Age="+m_age);}}A.Name=98;Age=97 B. Name=b;Age=97C. Name=97;Age=BD. 以上都不对19. 程序的运行结果为(A)。
public class J_Test{static short m_index;static int m_age;public static void mb_setData(short n){m_index = n;}public static void mb_setData(int n){m_age = n;}public static void main(String args[]){mb_setData(98);System.out.println("Index=" + m_index + ";Age="+m_age);}}A. Index=0;Age=98B. Index=98;Age=0C. Index=0;Age=0D. 以上都不对二.编程题(温馨提示:编程时尽量不要使用中文标识符。