JAVA基础 第3章练习_类与对象_2012
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类与对象选择题附加答案解析
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的超类。
《Java面向对象程序设计》课件-第3章 类和对象
3.4.2 访问权限
35
练习3.4
1.[单选题]被声明为private、protected及public的类成员,对于在类的外部,以下说法中 ________是正确的?
A.都不能访问
B.都可以访问
C.只能访问声明为public的成员 员
D.只能访问声明为protected和public的成
2.[单选题]在Java语言中,被______修饰符修饰的成员变量只可以被该类本身访问。
20
实例变量VS类变量
实例变量必须用对象名访问 类变量可以用类名访问,也可以用对象名访问
21
3.3.2 实例方法和类方法
成员方法的定义:
[访问权限] 返回值类型 方法名([参数列表]){ 方法体
} public String getPassword() {
//实例方法,获取密码
return password;
11
对象的创建
声明对象变量
✓ 类名 对象名(对象的引用)
Car c1; c1=new Car("京A08L35");
创建对象 类名 对象名=new 构造方法(); Car c1=new Car("京A08L35");
new
12
main()方法
main()方法: public static void main(String args[])
类型。
private String carNum;
每个类都有一个默pu认b的li构c C造a方r法()({它没有任何参数),如果类 没有重新定义构造方ca法rN,u则m创=建"京对象A时08系L统3自4"动; 调用默认的 } 构造方法。否则,p创ub建li对c 象Ca时r调(S用tr自in定g义n的u构m造){方法。
Java基础教程(第3章)
}
实例变量和类变量的区别
不同对象的实例变量将被分配不同的内存空间, 而类变量,对所有对象的这个类变量都分配给相 同的内存空间,改变其中一个对象的这个类变量 会影响其它对象读取的值,即同类对象共享类变 量。
cc11..rr==55;;
SSyysstteemm..oouutt..pprriinnttllnn((cc11..ggeettAArreeaa(())));;
}}
}}
public class Circle{ public int r;
当局部变量和成员变量同名时, 成员变量被隐藏,
public double getArea ( int r ) { double area=3.14*r*r;
如何引用被隐藏的成员变量呢?
return area; }
this.变量名 —— 成员变量
public static void main(String args[ ] ) { this ——表示当前对象的应用
Circle c1=new Circle( );
如:this.成员变量
System.out.println( c1.getArea(5) ); this.成员方法
当程序执行时,类代码被加载时,就会给类变量分 配空间,而实例变量要在创建实例后才分配空间
类变量通过类名可直接引用,实例变量要通过创 建实例后的实例名来引用,不能通过类名直接引 用
Circle cl1=new Circle(3); System. out .println( cl1 .r );
方法体中声明的局部变量的作用域在该方法内 部。
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类与对象及数组习题及答案
JAVA 类和对象及数组习题一、选择题(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。
finalintMAX_LENGTH=100 ﻫC.public const int MAX_LENGTH=100D.p ublic 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 )—原因:子类继承父类,并且可以有自己的成员变量和成员方法。
所以可以认为子类是父类的扩展。
◻A。
父类不能替代子类B.子类能够替代父类ﻫC。
子类继承父类D.父类包含子类(6)下列代码中,将引起编译错误的行是(B)—原因:定义float 型变量并对其初始化时,其值后面要加一个f。
Java练习题1-4章
第1章Java开发入门一、填空题1、Java程序的运行环境简称之为______。
2、编译Java程序需要使用______命令。
3、和两个可执行程序存放在JDK安装目录的______目录下。
4、______环境变量用来存储Java的编译和运行工具所在的路径。
二、选择题1、Java属于以下哪种语言A、机器语言B、汇编语言C、高级语言D、以上都不对2、下面哪种类型的文件可以在Java虚拟机中运行A、.javaB、.jreC、.exeD、.class3、安装好JDK后,在其bin目录下有许多exe可执行文件,其中命令的作用是以下哪一种A、Java文档制作工具B、Java解释器C、Java编译器D、Java启动器4、如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项A.d:\jdk;B.d:\jdk\bin;C.d:\jre\bin;D.d:\jre;第2章基本数据类型与数组一、填空题1、Java中的程序代码都必须在一个类中定义,类使用______关键字来定义。
2、布尔常量即布尔类型的两个值,分别是______和______。
3、Java中的注释可分为三种类型,分别是______、______、______。
4、Java中的变量可分为两种数据类型,分别是______和______。
5、在Java中,byte类型数据占______个字节,short类型数据占______个字节,int类型数据占______个字节,long类型数据占______个字节。
6、在逻辑运算符中,运算符______和______用于表示逻辑与,______和______表示逻辑或。
7、若x = 2,则表达式( x + + )/3 的值是______。
8、若int a =2; a+=3;执行后,变量a的值为______。
9、若int []a={12,45,34,46,23}; ,则a[2]= ______。
Java第03章--2(对象和类)
用public修饰的成员变量称为“公有成员变量”,公有类的公有成 员变量可以被其他任何类所访问。显然,公有成员变量是用来描 述不需要被隐藏的数据信息。 用protected修饰的成员变量称为“保护成员变量”,公有类的保 护成员变量既可以被该类自身所访问,又可以被处于同一个程序 包内的其他类(包括在同一个包中该类的子类)所访问,还可以 被其他包中该类的子类访问,即该类的所有子类都可以访问。 而友类的保护成员变量的访问范围仍然是限制在与该类处于同 一个程序包的范围内。 用private修饰的成员变量称为“私有成员变量”,私有成员变量 只能被该类自身所访问,即在该类某个方法体内,对该成员变量 进行读或写的操作,而不能被其他任何类所访问。 private修饰的成员变量用来描述那些需要隐藏起来的数据信 息,其他类只有通过调用该类的公有方法函数才能访问到它们, 这充分体现了“数据封装和信息隐藏”的OOP基本思想。
类的字段——静态成员变量的作用
静态成员提供了一个同类对象的共享机制; 用来统计对象的个数; 作为一个标志,指示一个特定的动作是否发生;
举例说明,例3.3,P128:StaticAndInstance.java
public class StaticAndInstance { static int xStatic = 5; // 声明静态成员变量xStatic int xInstance; // 声明(友元)实例变量xInstance static int yStatic; // 声明静态成员变量yStatic //没有赋初值时,系统将会自动地对其进行初始化,默认为0 static { // 静态成员变量的初始化块语句 System.out.println( "Inside Static : \n xStatic = " + xStatic + "\tyStatic = " + yStatic ); xStatic++; yStatic = 9; } StaticAndInstance(){ } // 无参数的构造函数,其方法体为空 StaticAndInstance( int k ) // 带参数的构造函数,初始化类变 量xInstance { xInstance = k; }
《Java语言程序的设计基础教程》习题解答
《Java语言程序设计基础教程》练习思考题参考答案第1章 Java程序设计概述1.9 练习思考题1、Java运行平台包括三个版本,请选择正确的三项:()A. J2EEB. J2MEC. J2SED. J2E解答:A,B,C2、Java JDK中反编译工具是:()A. javacB. javaC. jdbD. javap解答:D3、public static void main方法的参数描述是:()A. String args[]B. String[] argsC. Strings args[]D. String args解答:A,B4、在Java中,关于CLASSPATH环境变量的说法不正确的是:()A. CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。
B. 编译器用它来搜索各自的类文件。
C. CLASSPATH是一个目录列表。
D. 解释器用它来搜索各自的类文件。
解答:A5、编译Java Application源文件将产生相应的字节码文件,扩展名为()A. .javaB. .classC. .htmlD. .exe解答:B6、开发与运行Java程序需要经过的三个主要步骤为____________、____________和____________。
7、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是______类的子类并且存储该源程序文件的文件名为______。
8、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器编译该源程序文件将产生______个文件名与类名相同而扩展名为______的字节码文件。
9、开发与运行Java程序需要经过哪些主要步骤和过程?10、Java程序是由什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎么样的?11、编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“We are students”。
Java实用教程 第3章 Java类与对象
Java语言的类
面向对象程序设计概念
1类 2 对象 3 属性 4 方法 5 事情
类的定义
类的定义
Java中类定义的基本格式是: [类修饰符] class <类名> { <类体> }
其中,关键字class表示定义一个类,类修饰符可以用public或默认,<类名>是Java合法的标识符名。按 Java编码约定,类名的英文单词第一个字母要大写,若由多个单词组成,则每个单词的首字母都要大写, <类体>可缺省,<类体>由变量定义和方法定义组成。
Sum.java public class Sum {
static int P(int n) { return n == 0 ? 0 : n + P(n - 1);
} public static void main(String[] args) {
System.out.println("1+2+…+100之和是: " + P(100)); } }
当调用语句f((byte)65);时发生类型转换(在方法调用上下文中产生类型转换),按2.1.5节中基本数 据类型“宽转换”进行。若“宽转换”不成功,再进行“装箱”和“拆箱”类型转换。 按“宽转换”,byte可自动转换成short或float,但short比float更特殊(short能够宽转换到float,反 之不行),故最终调用的方法是:
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
● 接口可以被多个类所实现,这些类可以不相关,从而具有相同的行为。 ● 通过接口可以了解对象的行为,而无需了解对象所对应的类的结构。
JAVA各章习题及答案-全解
JAVA各章习题及答案-全解第1章Java入门一、选择题1.下列选项中,不属于Java 语言特点的一项是( C )。
(A)分布式(B)安全性(C)编译执行(D)面向对象【解析】Java程序采用解释执行的方法。
在系统编译运行Java程序时,Java编译器将Java程序转化为字节码,在运行时,解释器将编译得到的字节码进行解释执行。
2.在Java语言中,( C )是最基本的元素?(A)方法(B)包(C)对象(D)接口【解析】构成Java程序的基本元素类(抽象的对象)。
3.编译一个定义了3个类和10个方法的Java源文件后,会产生( D )个字节码文件?扩展名是( D )?(A)13个字节码文件,扩展名为.class(B)1个字节码文件,扩展名为.class(C)3个字节码文件,扩展名为.java(D)3个字节码文件,扩展名为.class【解析】源文件中的每一个类编译后都会生成一个字节码文件,字节码文件的扩展名是.class。
4.在创建Applet应用程序时,需要用户考虑问题是(B )。
(A)窗口如何创建(B)绘制的图形在窗口中的位置(C)程序的框架(D)事件处理【解析】创建Applet程序时必须继承系统类Applet,而Applet类中已经包含了如何创建窗口以及事件处理等内容,这类程序的框架也都是固定的,而绘制图形在窗口中的位置则需要由用户确定。
5.Java语言属于( B )种语言?(A)面向机器的语言(B)面向对象的语言(C)面向过程的语言(D)面向操作系统的语言【解析】Java语言是一种纯面向对象的语言。
6.下列关于Application和Applet程序的说法中不正确的一项是(B )。
(A)Application使用解释器java.exe(B)Application不使用独立的解释器(C)Applet在浏览器中运行(D)Applet必须继承Java 的Applet类【解析】Application程序包含main()方法,它是一种独立执行的程序,因此必须使用独立的解释器解释执行。
【免费下载】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); }
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;
最新Java基础第3章课件PPT课件
3.2 类与对象
• 3.2.2 对象的创建与使用
– 应用程序想要完成具体的功能,仅有类是远远不够的,还需要根 据类创建实例对象。
– 在Java程序中可以使用new关键字来创建对象,具体格式如下:
– 例如,创建一个Person对象,具体示例如下:
3.2 类与对象
• 3.2.2 对象的创建与使用
– “new Person()”用于创建Person类的一个实例对象,“Person p”则是声明了一个Person类型的变量p。中间的等号用于将 Person对象在内存中的地址赋值给变量p,这样变量p便持有了对 象的引用,变量p和对象之间的引用关系如下图所示。
Hale Waihona Puke 3.2 类与对象• 3.2.4 类的封装
– 先来看一个例子,具体如下:
在例程3-5的第5行代码中,将年龄赋值为一个负数-30,这在程序中不会 有任何问题,但在现实生活中明显是不合理的。为了解决年龄不能为负 数的问题,在设计一个类时,应该对成员变量的访问作出一些限定,不 允许外界随意访问。这就需要实现类的封装。
3.3 构造方法
• 3.3.1 构造方法的定义
– 在一个类中除了定义无参的构造方法,还可以定义有参的构造方 法,通过有参的构造方法就可以实现对属性的赋值
例程3-8的Person类中定义了有参的构造方法Person(int a)。第13行代码 中的“new Person(20)”会在实例化对象的同时调用有参的构造方法, 并传入了参数20。在构造方法Person(int a)中将20赋值给对象的age属 性。通过运行结果可以看出,Person对象在调用speak()方法时,其age 属性已经被赋值为20。
Java基础第3章课件
思考:可以定义什么?
JAVA基础 第3章类与对象_练习题
第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)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章类与对象一.选择题1.下列不属于面向对象编程的特性是()。
A.封装性 B. 继承性 C. 多态性 D. 编译执行性2.下列类的声明中不合法的是()。
A. class People{…}B. class 植物{…}C. Class A{…}D. public class 共有类{…}3.下列方法的声明中不合法的是()。
A. float area(){…}B. void area(){…}C. double area(d){…}D. int area(int r){…}4. 下列构造方法的调用中正确的是()。
A. 按照一般的方法调用B. 由用户直接调用C. 只能通过new自动调用D. 被系统调用5.下列程序运行的结果是()。
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.下列程序运行的结果是()。
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.下列程序运行的结果是()。
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. 以下代码的输出结果为()。
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. 编译和运行程序会出现什么样的结果()。
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. 输出:99C. 输出:198D. 运行出错10. 关于以下程序代码的说明正确的是()。
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);}}其输出结果是什么()。
A. The value is 8B. The value is 9C. The value is 10D. The value is 1112. 以下代码的调试结果为()。
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 和 999。
B.输出 999 和 100。
C.第3行出现编译错误, 变量 maxElements 未初始化。
D. 第19行出现编译错误。
13. 给出如下类定义:public class test {test(int k) {…}}如果要创建一个该类的对象,正确的语句是()。
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. 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.下面程序的输出结果是什么()。
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. 下面程序的输出结果是什么()。
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.下列代码的运行结果是()。
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.下列程序的运行结果为()。
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. 程序的运行结果为()。
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. 以上都不对第3章练习题答案一、选择题:1-5:D C C C A 6-10: D C C A D 11-15:C D B A C 16-19:A D B A。