java中的类访问权限与成员访问权限

合集下载

第7章 Java语言类的特性(第4版)

第7章 Java语言类的特性(第4版)
16

7.4 静态成员
7.4.4 静态初始化器 ♥ 静态初始化器与构造方法区别:(续) • 用new创建多少个新对象,构造方法就调用多 少次,但静态初始化器则在类被加载入内存 时只执行一次。 • 静态初始化器不是方法,它没有方法名、返 回值和参数。 ♥ 如果有多个静态初始化器,则它们在类的初始 化时会依次执行。

4
7.1 类的私有成员与公共成员
7.1.3 缺省访问控制符 ♥ 若在类成员的前面不加任何访问控制符,则 该成员具有缺省的访问控制特性。 ♥ 缺省访问控制权,表示这个成员只能被同一 个包(类库)中的类所访问和调用,如果一 个子类与父类位于不同的包中,子类也不能 访问父类中的缺省访问控制成员,也就是说 其他包中的任何类都不能访问缺省访问控制 成员。 ♥ 同理,对于类来说,如果一个类没有访问控 制符,说明它具有缺省访问控制特性
5

7.2 方法的重载
方法的重载是实现“多态”的方法之一。 方法的重载是指方法带有不同的参数,但使用 相同的名字。int add(int x, int y); int add(int x, int y, int z); 方法的参数不同则表示实现不同的功能,但功 float add(float f1, float f2); 能相似。 float add(float f1, int y); 所谓参数不同是指:参数个数不同、参数类型 float add(int y, float f1); float add(int x, int y); 不同、参数的顺序不同。参数的名字不同不能 int add(int u, int v); 说明是方法的重载。 Java中不允许参数个数或参数类型完全相同, 而只有返回值类型不同的重载。 见教材例7.3
L/O/G/O

java中的类的专题

java中的类的专题

(1)类的默认的无参构造函数[ ]。

A) 在任何情况下都存在B) 仅当未定义无参构造函数时存在C) 仅当未定义有参构造函数时存在D) 仅当未定义任何构造函数时存在(2) 类的默认的拷贝构造函数[ ]。

A) 在任何情况下都存在B) 仅当未定义拷贝构造函数时存在C) 仅当未定义有参构造函数时存在D) 仅当未定义任何构造函数时存在改错题:每题有一处错误,请在出错语句后用注释说明出错原因并提出更改意见(1)class Location {int X , Y ;protected:int SetZero(int zeroX, int zeroY);private:int length, height;public:void Location(int initX, int initY);int GetX( );int GetY( ); };(2)下面的程序有一处语法错误:#include <iostream.h>class Pair{int X, Y;public:Pair (int initX, int initY): X(initX), Y(initY){}int sumXY(){return X+Y; };};void main(){Pair A1(5,3);cout<<A1.X+A1.Y;}题 1.分析以下程序执行的结果#include<iostream.h>#include<stdlib.h>class Sample{public:int x,y;Sample(){x=y=0;}Sample(int a,int b){x=a;y=b;}void disp(){cout<<"x="<<x<<",y="<<y<<endl;}};void main(){Sample s1(2,3);s1.disp();}解:本题说明了重载构造函数的定义方法。

面向对象技术Java 期末复习试卷(三)

面向对象技术Java 期末复习试卷(三)

期末复习试卷(三)一、单项选择题1、有一段java应用程序,其中包含一个公共类,名字为TestStudent,那么保存它的源文件名是()A。

teststudent。

javaB。

teststudent 。

classC. TestStudent。

javaD. TestStudent。

class正确答案:C解析:一个java文件中可以包含多个类,但最多只能有一个类是公共类(public),该java文件的名字要与公共类的一致.2、关于下面的代码,哪个描述是正确的?public class Test{public static void main(String[]args){Integer n1 = new Integer(3);Object n2 = new Integer(4);System.out.println(pareTo(n2));}}A。

可以编译通过,可以运行,并得到预期结果.B。

可以编译通过,可以运行,但不能得到预期结果。

C。

可以编译通过,但又运行错误.D. 有编译错误。

正确答案:D解析:Integer类是基本数据类型int的包装类,里面封装了一个int类型的值,提供了一些实用的方法(例如:在JavaFX中读取文本框内容是String类型的,如果要转换成int类型,就要调用Integer类的parseInt()方法)并实现了Comparable接口,在Comparable接口中定了抽象方法compareTo(T o), T是泛型,对于Integer 类,T被替换为Integer,如下图:因此,Integer类中compareTo()方法的定义如下:因此,compareTo的参数只能是Integer类型的,所以代码中的下面语句中的n2的类型需要进行强制类型转换,由Object转为Integer:System。

out.println(pareTo(n2));正确写法如下:System.out.println(pareTo((Integer) n2));类似的包装类还有Long\Float\Double\Char\Boolean等,都是将基本数据类型包装为类。

Java类的属性与方法 PPT

Java类的属性与方法 PPT

方法调用
• 方法是个“黑匣子”,完成某个特定的应用程序功能,并返回结果 • 方法调用:执行方法中包含的语句
对象名.方法名();
小明过生日,爸爸送他一个电动狮子玩具,编程测试这个狮子能否正常工作
方法调用
public class LionTest { public static void main(String[ ] args) {
类的方法
按此按钮, 狮子开始跑
电动玩具狮子 属性: 颜色:黄色
行为: 跑 叫
• 写出狮子对象的“跑”方法 • 写出狮子对象的“叫”方法
类的方法示例
AutoLion类代码实现
访问类型
public class Au返to回Lio类n型{ String color = "黄色";
方法名称
public void run(){ System.out.println("正在以0.1米/秒的速度向前奔跑");
Phone Student= new Student() ;
12
public Student()
{
}
方法的主体
方法的命名
• 如何给方法起名字? – 只能以字母、‘_’或‘$’开头 – 可以包括数字,但不能以它开头
• 遵循的命名规范 – 通常方法名是一个动词,如果有两个以上单词组成,第一个单词的种情况 – 如果方法具有返回值,方法中必须使用关键字return返回该值,返回类型为该返回 值的类型
} }
方法调用案例
• 编写成绩计算类(ScoreCalc) • 编写测试类
成绩计算类 测试类
编程实践
– 编写手机类(Phone):它可以下载音乐,可以播放这些音乐,可以进行充电

Java程序设计基础期末测试习题二

Java程序设计基础期末测试习题二
正确答案:A
二、判断题
21、一个新线程启动start()方法,表示线程可为JVM的线程调度程序调度而不表示它可以立即运行。(对)
22、在构造方法中如调用super()语句,则必须使其成为构造方法中的第一条语句。(对)
23、构造函数用于创建类的实例对象,构造函数名应与类名相同,返回类型为void。(错)
C.-classpath
D.-g
正确答案:C
3、下列整型数据类型中,需要内存空间最少的是()。
A.long
B.short
C.int
D.byte
正确答案:D
4、下列()不是Java中的保留字?
A.if
B.sizeof
C.null
D.private
正确答案:B
5、阅读该程序,选择合适的选项填入空缺部分()。
A.通过调用Frame的setVisible(true)方法来设置窗口为可见
B.通过调用Frame的setSize()方法来设定窗口的大小
C.Frame的对象实例化后,没有大小,但是可以看到
D.在Windows系统下,Frame窗口是有标题、边框的
正确答案:C
17、下列哪一项不属于AWT布局管理器()?
A.既可用以创建对象,也可用以派生新类
B.既不能用以创建对象,也不可用来派生新类
C.只能用以派生新类,不能用以创建对象
D.只能用以创建对象,不能用以派生新类
正确答案:C
12、定义外部类的类头时,不可用的关键字是()。
A.public
B.abstract
C.protected
D.final
正确答案:C
正确答案:C
6、假设下面的程序代码都放在MyClass.java文件中,以下的哪个程序代码能够编译通过?

Java访问权限控制

Java访问权限控制

Java访问权限控制Java访问权限控制修饰符⽤来定义类、⽅法或者变量,通常放在语句的最前端。

Java语⾔提供了很多修饰符,主要分为以下两类:访问修饰符⾮访问修饰符其中⾮访问修饰符主要有:static、final、abstract、synchronized和volatile,⾮访问修饰符根据各⾃的特性来保证特定功能的实现。

Java中使⽤访问控制符来保护对类、变量、⽅法和构造⽅法的访问,访问控制修饰符对应的权限控制的⼤⼩情况为:public > protected > default(包访问权限) > private。

1. 编译单元和包编译单元:即为最⼩的可以被编译且执⾏的Java⽂件。

⼀个.java⽂件就是⼀个编译单元,⼀个编译单元必须只包含有⼀个public类,可以包含有其他⾮public的类,并且⽤publi类标⽰的类名必须和⽂件名相同。

如果.java⽂件中不包含有publi类,则这个类也是没有意义的,因为不能被外界所访问。

.java⽂件中包含有⼏个类,编译后就会⽣成⼏个.class⽂件。

包含有⼀组类,是以⼀个名字空间集合在⼀起的类⽽已。

2. 访问控制修饰符public : 对所有类可见使⽤对象:类、接⼝、变量、⽅法protected : 对同⼀包内的类和所有⼦类可见使⽤对象:变量、⽅法。

注意:不能修饰类(外部类)default (即缺省,什么也不写): 在同⼀包内可见,不使⽤任何修饰符使⽤对象:类、接⼝、变量、⽅法。

private : 在本类中可见使⽤对象:变量、⽅法。

注意:不能修饰类(外部类)private和protected修饰符不能⽤以修饰类/接⼝2.1 公有访问修饰符-public被声明为 public 的类、⽅法、构造⽅法和接⼝能够被任何其他类访问。

如果⼏个相互访问的 public 类分布在不同的包中,则需要导⼊相应 public 类所在的包。

由于类的继承性,类所有的公有⽅法和变量都能被其⼦类继承。

java编程思想第四版习题答案

java编程思想第四版习题答案

java编程思想第四版习题答案【篇一:java编程思想第四版_读书笔记】面向对象程序设计(object-oriented programming oop),uml(unitied modelling language 统一建模语言)。

将对象想像成“服务提供者” ,它们看起来像什么?能够提供哪些服务?需要哪些对象?2.java中动态绑定是默认行为。

java采用动态内存分配方式,通过new操作在堆(heap)的内存池中动态创建对象。

java存储结构类型:1)寄存器2)堆栈,主要存储对象引用3)堆,主要用于存放所有的java对象4)常量存储,也就是程序代码区5)非ram存储,如流对象和持久化对象。

基本类型不用new来创建变量,而且这个变量直接存储”值”,并置于堆栈中。

3.biginteger和bigdecimal的使用。

当变量作为类的成员使用时当变量作为类的成员使用时,java才确保给定其默认初当变量作为类的成员使用时始值,但是在方法中定义的变量,它有可能是任意值。

面向对象的程序设计可以归纳为“向对象发送消息” 。

关键字static。

4.javadoc只能为public和protected成员进行文档注释,但是也可以通过-private进行标记注释。

javadoc常用方法: @see 引用其他类,link package.class#member label}, {@ {@docroot},{@inheritdoc},@version,@ author,@since,@param,@return,@throws,@deprecated。

5.整数除法会直接去掉结果的小数位。

基本类型的对象如果直接对它们赋值,对象指向同一个常量存储区,但是如果通过对象来初始化则会指向不同的堆的存储区。

如:string st1 = new string(a);string st2 = new string(a); st1==st2 false string st1 = a; string st2 = a; st1==st2 true6.逻辑操作符:与()、或(||)、非(!),其中与()、或(||)会产生短路现象。

java基础面经典试题(附答案)

java基础面经典试题(附答案)

基础知识部分:1. JDK是什么?JRE是什么?a) 答:JDK:java开发工具包。

JRE:java运行时环境。

2. 什么是java的平台无关性?a) 答:Java源文件被编译成字节码的形式,无论在什么系统环境下,只要有java虚拟机就能运行这个字节码文件。

也就是一处编写,处处运行。

这就是java的跨平台性。

3. 在一台电脑上配置java环境,path起什么作用?如何配置?a) 答:path的作用是在DOS环境下,能在任意位置使用JDK目录中b in文件夹中的可执行程序,来编译执行java程序。

b) 在环境变量中找到path变量,把bin文件夹的绝对路径加上即可。

4. 什么样的标识符是合法的?a) 由字母、数字、_和$组成,长度不限。

其中字母可以是大写或小写的英文字母,数字为0到9。

b) 标识符的第一个字符不能是数字。

c) 标识符区分大小写。

d) 标识符不能包含空格。

5. Java有几种基本数据类型?a) byte,short,int,long,float,double,char,boolean6. 什么是隐式类型转换?什么是显示类型转换?a) 当将占位数少的类型赋值给占位数多的类型时,Java自动使用隐式类型转换。

b) 当把在级别高的变量的值赋给级别底变量时,必须使用显示类型转换运算。

7. &&和&区别,||和|区别?a) &&和||是短路与,短路或,当左边的表达式能判断当前结果,则不判断右边的表达式。

b) 而& 和|则将两边的表达式都运算完毕后,再算结果。

8. break,continue区别?a) break结束所有循环,continue结束当次循环,进入下次循环。

9. 类的命名规则是什么?a) 如果类名使用拉丁字母,那么名字的首写字母使用大写字母。

b) 类名最好见名知意,当类名由几个单词复合而成时,每个单词的首写字母使用大写。

10. 类体的内容由两部分构成,哪两部分?a) 一部分是变量的定义,用来刻画属性。

Java技术基础-面向对象特性

Java技术基础-面向对象特性
– –
包相当于名字空间 完整类名是什么? 使用*还是使用具体类? 引入多个类会不会引起文件 膨胀?
import
– –
松迪科技(北京)有限公司 松迪科技(北京)

早期软件开发采用面向过程编程
– –
使用三种控制结构描述出解决问题的步骤 数据与函数分离,数据与函数失去关联性 数据称为属性 函数称为方法 封装(保证了属性与方法的关联性) 封装 继承(代码复用) 继承 多态(在代码复用的同时,强化了个体性因素) 多态
Annotation
Annotation成员的类型,也就是方法返回类型, 只能是基本数据类型、Class、String、 annotation、枚举,或是以上类型的数组。 Annotation方法是没有体的,只能是public的, 也可声明成abstract的。 Annotation可以像接口一样被实现,但并不现 实意义。
默认访问权限,相当于友元,在包内可见 公共访问权限,均可见
在一个Java源文件中,只能有一个公共访问权 限的类,并且文件名必须与公共类名完全相同
松迪科技(北京)有限公司 松迪科技(北京)
成员访问权限
正常情况下,类内的各成员之间可相互访问, 访问其它类的成员应通过创建对象后使用点操 作符实现。 成员(方法、属性)访问权限
Java技术基础 技术基础
面向对象特性
松迪科技(北京)有限公司 松迪科技(北京)
提纲
包与引入 类
– – – – –
属性与方法 对象与引用 继承、多态、封装 抽象类 内部类
接口 枚举(JDK1.5) Annotation(JDK1.5)
松迪科技(北京)有限公司 松迪科技(北京)
包与引入
package

JAVA语言与程序设计-第三讲-03-访问权限及封装性

JAVA语言与程序设计-第三讲-03-访问权限及封装性

}
【程序案例2.23】 class Exp 私有变量私有方法可被 该类自身所访问和修改 { private int money; Exp() { money=2000; } private int getMoney() { return money; } private关键字意味着,只有在本类中创建该类的 public static void main(String args[]) 对象时,这个对象才能访问自己的私有成员变量和类 { 中的私有方法,这似乎将类与我们自己都隔离起来。 Exp exa=new Exp(); exa.money=3000; int m=exa.getMoney(); System.out.println("money="+m); }
访问权限
类的访问 控制符
public public private private protected protected
缺省访问控制符 缺省访问控制符
访问权限
访问权限的级别排列:
访问限制修饰符,按访问权限从高到ate。
.1 共有变量和共有方法
设:类Bob与类 缺省访问控制 Tom在同一个包中, 则对象cat能访问自己的友好变量和友好方法。
如:class Tom { int weight; int f(int a,int b) {.......} .......... } class Bob { void g() { Tom cat=new Tom(); cat.weight=23; cat.f(3,4); }
import dessert.*; public class Dinner { 可以创建一个Cookie对象,因为它的构建器是 public Dinner() public的,而且类也是public的。然而,foo()成员不可 { 在Dinner.java内访问,因为foo()只有在dessert包内才 System.out.println("Dinner constructor"); 是“友好”的。 } public static void main(String[] args) { Cookie x = new Cookie(); //! x.foo(); // Can't access } }

Java程序设计精编教程5-8章知识点

Java程序设计精编教程5-8章知识点

b) 如果变量名由多个单词组成,从第 2 个单词开始的每个单词的首字母要大写。
方法
方法的定义包括两部分:方法声明和方法体。一般格式为:
方法声明部分 {
方法体的内容
}
方法声明
方法声明包括返回值类型、方法名和参数。
double getArea() { //返回值类型为 double,无参数。

}
方法的返回值类型可以是 Java 中的任意数据类型。如果一个方法不返回数据,返回值类型必须是 void。
2. 有一个类 Singleton,为该类设计单例模式(该类只能有一个实例,且不能在类的外部 new 对象),只能通过该类 的静态方法 getInstance()获取该类的唯一对象。在主类 Homework2 中测试单例模式的有效性。
b) 在实例方法中,不仅可以调用实例方法,也可以调用类方法。 2) 类名调用类方法
a) 在类方法中,只能调用类方法、操作类变量。 b) 也可以通过对象调用类方法。 c) 如果一个方法不需要操作实例变量就可以实现某种功能,可以考虑将其声明为类方法。(例 5-8) 5.7 方法重载与多态 Java 中有两种多态:重载(overload)和重写(override)。 方法重载(overload):一个类中可以有多个名字相同的方法,但这些方法的参数必须不同,或者参数的个数不同, 或者参数的类型不同。方法的返回值类型与重载无关。
5.8 this 关键字 this 只能出现在实例方法和构造方法(也属于实例方法)中,表示调用该方法的当前对象。 一般情况下,方法中 this.实例变量的 this 可省略、类名.类变量的类名可省略,但当局部变量与成员变量同名时,
this 或类名不能省略。 5.9 包
包是 Java 语言管理类的一种机制,类似于操作系统中的目录,使用包名可以有效区分名字相同的类。 包语句

JAVA复习题及答案

JAVA复习题及答案

JAVA复习题及答案第一章JAV A概述1.JA VA中哪三种平台:J2ME(嵌入式平台),J2SE(标准平台),J2EE(企业级平台).2.JA VA从第几版称为JA V A2:JA V A 1.2版。

3.JA VA有否指针:无。

4.JA VA的API指的是什么:Application ProgrammingInterface,JA V A的类库。

5.JA V A平台无关性是如何实现的:通过编译生成与平台无关的代码──字节码,而不是通常的特定机器上的机器码,由平台上的Java虚拟机中的Java解释器解释执行。

6.JA VA有哪两种程序形式:Application和Applet程序。

7.Application程序运行时系统调用程序的哪个方法:main()方法。

Applet程序执行时系统自动调用程序的哪个方法:init()方法。

8.绘图程序中系统自动调用哪个方法:paint(Graphics g)方法。

9.JDK是什么:Java开发工具包(Java Development Kit )的缩写,包括JAVA类库、JAVA编译器、JAVA解释器、运行时环境、命令行工具。

10.有哪几种主要的可视化的集成源程序编辑环境:Eclipse,JCreator, JBuilder等。

11.安装JDK的可执行文件是:jdk-1_5_0-windows-i586.exe12.安装JDK帮助文档的是:jdk-1_5_0-doc.zip第二章JAV A语言基础13.保留字是什么意思,能否用于程序员定义自己的类、方法、变量等名字:JA V A中已定义的用于特定用途的标识符。

不能。

14.i++与++i有什么区别?15.写出各种转义字符?p17。

\t, \n, \r, \‖, \’, \\16.编程良好习惯中,对象名、包名、类名、变量名、常量名、接口名、方法名中的字符的大小写如何设置?Package –名词且小写;Class--名词且第一个字母大写;Interface—同Class;Methods-动词且第一个字母小写,分隔词第一个字母大写,不用‖-―;Variable—第一个字母小写,不用‖_‖,‖$‖(对于inner class有意义);Constants—大写并用‖_‖17.标识符的用途:用于给类、方法、变量、接口、程序块、对象等起名字。

Java学习(二).习题

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

Java

1、Java语言是以对象为中心,以消息为驱动的面向对象的编程语言。

2、Java语言与平台无关3、翻译:编译、解释(C、C++属于编译型语言,Java=编译+解释)4、面向对象是一种模拟人类社会和人解决实际问题的模型5、面向对象编程语言:Java,C++6、支持三个概念:抽象、多态、继承7、Java源文件是一个利用Java语言编写的文本文件,它可以用任何的文本编辑器进行编辑(可以是记事本、写字板、Wps、Word)8、代码说明:用“\\"开头,表示这两行是注释行9、Java源程序的文件名必须是公共类的类名,文件名的后缀必须是java。

Java文件名由实意文件名+后缀组成,后缀名因类型不同而不同。

10、一个Java源程序文件可以包含多个类,但是每个文件里最多只能包含一个公共类。

11、main成员方法是所有Java应用程序执行的入口,但不是Java 小程序的入口。

成员方法main必须同时含有public、static、void的属性。

在成员方法main中,args是参数变量,String[]是参数变量的数据类型,这个数据类型是不可以被修改的。

12、Main方法只能有一个。

一个文件中有4个类,通过编译产生4个class,有几个类就有几个class13、Java划分为J2EE(大容量)、J2SE(标准)、J2ME(小容量,如手机、微波炉)三个平台对外发布。

14、成功安装JDK之后,还需要设置其运行环境,其中包括path和classpath两个主要的环境变量。

15、Eclipse软件主要涉及Java两种应用程序的编辑、调试和运行。

1、Application2、一般存放在服务器上,按浏览器客户请求传送到客户机,又客户机浏览器来运行,即Java小应用程序Java Applet.16、在DOS环境(即在黑屏下运行)中需要使用appletviewer命令来启动Java小应用程序,而Eclipse软件的集成开发环境已经将appletviewer命令整合在它的功能菜单中.17、Java是面向对象的不是面向过程的。

华南农业大学Java程序设计期末考试试卷(A卷)(同名36705)

华南农业大学Java程序设计期末考试试卷(A卷)(同名36705)

华南农业大学期末考试试卷(卷)学年第学期考试科目:程序设计一、单项选择题(本大题共小题,每小题分,共分)1.下列关于语言的说法,不正确的是:. 是面向对象的高级语言. 是解释型语言,所以执行速度快. 一个类被编译成一个字节码文件. 程序可以做到“一次编写,随处运行”2.下列符合程序元素命名习惯的是。

. . . .3.下列不满足自动类型转换的赋值语句是。

.‘’;. ;.; . ;4.语句, ; ; 执行结束后,和的值分别是。

. ,. ,. ,. ,5.下列程序段的输出结果是。

, ;(“”);. . . . ;6.下列关于和这两种循环语句的说法,正确的是.二者都是后置检查循环条件.循环次数不确定使用语句比较好.循环条件是布尔型表达式.它们之间不能互相嵌套使用7.下列程序片段执行后,的值为, ; ( ){ : ; : ; : ;}. . . .8.定义二维数组,不正确的是. [][]; . [][]; . [] []; . [][] ;9.设[][] {{},{},{},{}},则. 数组一共有个元素. []为. 为. [][]等于10.下面一段代码的输出结果是{( [] ){[] {}; ()([]);}([] , , ){ []; [] []; [] ;}}. . . .11.关于字符串,下列语句不正确的是. (””);. “”(‘’);. “”; ();. (); (“”);12.关于类和对象,下列说法不正确的是。

. 类是对象的模板,对象是类的实例. 面向对象有四个基本特征:抽象、封装、继承和多态. 对象的引用变量只是存放了对象的地址. 静态成员方法可以调用实例成员方法13.关于类和成员的访问权限,下列说法正确的是. 类能继承类的前提是和必须在同一个包中. 子类不能继承位于不同包中的父类的成员. 子类不能继承位于同一包中的父类的成员. 子类可以继承位于不同包中的父类的无修饰成员14.下列关于继承的哪项叙述是正确. 在中允许多继承. 的单一继承使代码更可靠. 在中一个类不能同时继承一个类和实现一个接口. 在中一个类只能实现一个接口15.下列关于父类和子类构造方法,不正确的是. 子类不能继承父类的构造方法. 子类构造方法可以调用父类构造方法. 子类构造方法的第一条语句必须通过显式调用父类构造方法. 子类构造方法的第一条语句也可以通过调用本类的重载构造方法16.下列关于方法重载和覆盖的描述,不正确的是. 可通过返回值类型来区分是否为重载方法. 方法重载可减少记忆方法名称的难度,使程序清晰易读. 方法覆盖只能在有继承关系的父子类间. 方法覆盖必须保持父类方法的返回值、方法名和形参均不变17.下列不是实现多态必须条件的是. 继承. 方法重载. 方法覆盖. 父类引用变量可引用子类对象18.是中所有类的祖先类,其中用来比较两个对象内容是否相等的方法是. . .二、判断题(本大题共小题,每小题分,共分,正确选,错误选)19.()把源文件编译成字节码文件的命令是。

Java学习笔记10---访问权限修饰符如何控制成员变量、成员方法及类的访问范围

Java学习笔记10---访问权限修饰符如何控制成员变量、成员方法及类的访问范围

Java学习笔记10---访问权限修饰符如何控制成员变量、成员⽅法及类的访问范围1.Java有三种访问权限修饰符,分别为public、protected、private,还有⼀种为缺省权限修饰符的情况,记为default。

其中,可以由public 和default来修饰类;这四种修饰符都可以修饰成员变量和成员⽅法。

每⼀种修饰符对应不同的访问范围,下⾯以下图为例详细说明。

图1private只可以覆盖圆1,即只有本类可以访问;default可以覆盖到圆3,即本类、同包⼦类、同包其他类都可以访问,简单说就是与本类同包的所有类都可以访问;protected可以覆盖到圆4,即本类、同包⼦类、同包其他类、其他包中的⼦类都可以访问,简单说就是与本类同包的类及其他包中的⼦类都可以访问;public可以覆盖到圆5,即本类、同包⼦类、同包其他类、其他包⼦类、其他包其他类都可以访问,简单说就是所有类都可以访问;注:在与⽗类不同包的⼦类中,如果通过⼦类对象访问和调⽤⽗类中由protected修饰的变量和⽅法,确实可以;但如果通过⽗类的对象访问和调⽤的话,则不可以访问protected修饰的变量和⽅法,具体见下⽂的(6)和(7)。

具体原因还未了解。

2.下⾯以简单的程序验证上述结论。

前提:包human中定义了类Person,Student,DustMan;其中,Student是Person的⼦类,DustMan不是Person的⼦类。

包teacher中定义了类Teacher,GateMan;其中,Teacher是Person的⼦类,GateMan不是Person的⼦类。

Person中定义了四个成员变量和四个成员⽅法,分别以public,protected,缺省,private修饰,详见下⾯代码:String name;public String education;private String hobby;protected String residence;public void testModifierPublic() {System.out.println("Public");}protected void testModifierProtected() {System.out.println("Protected");}void testModifierDefault() {System.out.println("Default");}private void testModifierPrivate() {System.out.println("Private");}(1),在Person类中定义Person类对象pOwn,分别访问和调⽤这些成员变量和成员⽅法,详见下⾯的代码:public static void main(String[] args) {Person pOwn = new Person("xi",20,"female","bachelor","recite","NJ");System.out.println("public education: " + cation);System.out.println("protected residence: " + pOwn.residence);System.out.println("default name: " + );System.out.println("private hobby: "+ pOwn.hobby);pOwn.testModifierPublic();pOwn.testModifierProtected();pOwn.testModifierDefault();pOwn.testModifierPrivate();}输出结果为:public education: bachelorprotected residence: NJdefault name: xiprivate hobby: recitePublicProtected结果分析:Person类对象可以在本类中访问和调⽤由public、protected、default、private修饰的成员变量和成员⽅法。

JAVA程序设计案例教程(第二版)周怡、张英主编。第6章 习题答案

JAVA程序设计案例教程(第二版)周怡、张英主编。第6章 习题答案

的类可以通过关键字 implements 实现多个接口。
(√)
5.Math 类是 final 类,因此在被其他类继承时其中的方法不能被重,正确的是(A)。
A.类是变量和方法的集合体
B.数组是无序数据的集合
C.抽象类可以实例化
D.类成员数据必须是共有的
2.下面对形参的说法中,正确的是(C)。
4.为什么要将类封装起来?封装的原则是什么? 答:因为封装的类之间互相独立、互不干扰,但可以通过规定的数据接口来进行数据交换,即能 保证数据的安全又能提高类之间相互组合的高效性。
一、将数据和对数据的操作组合起来构成类,类是一个不可分割独立单位。 二、类中既要提供与外部联系的方法,同时又要尽可能隐藏类的实现细节和保护自身数据 的安全性。
3.Java 设置了几种类成员的访问权限?各表示什么含义?
答:(1)公有的(public):说明该类成员可被所有类的对象使用 (2)保护的(protected):说明该类成员能被同一类中的其他成员,或其他子类成员,或同一 包中的其他类访问,不能被其他包的非子类访问。 (3)默认的(缺省):说明该类成员能被同一类中的其他成员,或同一包中的其他类访问,但 不能被其他包的类访问。 (4)私有的(private):说明该类成员只能被同一类中的其他成员访问,不能被其他类的成员 访问,也不能被子类成员访问。
译时多态性。 方法的覆盖:在子类中重定义父类的同名方法。方法覆盖表现为父类与子类之间的方法的
多态性,其中形参表、返回值类型也必须相同,且子类方法不能有比父类方法更严格的访问权 限。可以为编译时多态性或运行时多态性。
6.什么叫构造方法?构造方法的作用是什么?
答:构造方法是对象实例化时完成对象及其成员变量的初始化时所调用的一种特殊的方法。 构造方法的作用是在使用 new 关键字创建类的实例的时候被调用来对实例进行初始化。

Java复习

Java复习

Java复习1. Java中创建类的时候,不写类的修饰符默认是 default 权限,是可以在同包下相互访问的;如果是 public 类型,是允许跨包访问的;如果是 Private类型,仅允许在类内访问,连⼦类都访问不了protect: 介于public 和 private 之间的⼀种访问修饰符,⼀般称之为“保护形”。

被其修饰的类、属性以及⽅法只能被类本⾝的⽅法及⼦类访问,即使⼦类在不同的包中也可以访问2.同样,Java⽅法中默认的修饰符也是default ,默认什么都不加,就是default(不⽤把default写出来)。

意思就是只能由跟这个类在同⼀个包中的类来访问,⽐private限制更少,但⽐protected限制更多。

'3.记住静态⽅法和对象完全⽆关,所以静态⽅法不存在⽅法覆盖这么⼀说!!静态⽅法⼀般⽤类名来进⾏调⽤4.静态变量是属于类的,5.⾮静态⽅法既可以访问静态⽅法⼜可以访问⾮静态⽅法,⽽静态⽅法只能访问静态数据⽅法。

(这个要切记,在Java复习第⼀个笔记中就有这个记录,静态⽅法是不能访问⾮静态变量的,但是⾮静态变量是可以访问静态⽅法的)6.弄清⽅法覆盖和⽅法重载的区别⽅法覆盖必须发⽣在具有继承关系的⽗⼦关系中(重写后的⽅法必须的之前的⽅法具有相同的⽅法名,参数列表以及返回值!!)⽅法重载是在⼀个类中,⽅法名必须相同,但参数列表不⼀致7.弄清楚 super() 的作⽤,A类继承B类,B类有两个构造⽅法,⼀个有参,⼀个⽆参,A类在写构造⽅法的时候,第⼀⾏会默认加上 super() (你看不见。

),但是这个默认调⽤的是B类的⽆参构造,所以⽗类写构造⽅法的时候⼀定要注意8.Java⼀个类中只能有⼀个 public 类9.Java单引号表⽰字符,双引号才表⽰字符串10.final 修饰的类⽆法被继承,final 修饰的⽅法⽆法被重写11.注意,抽象类中的抽象⽅法是不可以写⽅法体的例如: public abstract void eat() ;12.抽象类中可以有抽象⽅法和⾮抽象⽅法⾮抽象类可以继承抽象⽅法,但是,但是,前提是必须实现(其实就是重写)抽象⽅法!!《别记混了》⾮静态⽅法既可以访问静态⽅法⼜可以访问⾮静态⽅法,⽽静态⽅法只能访问静态数据⽅法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档