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编程思想第四版_读书笔记】面向对象程序设计(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基础面经典试题(附答案)

基础知识部分: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技术基础-面向对象特性

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

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