第3章_this 内部类 访问权限 包
- 格式:ppt
- 大小:416.00 KB
- 文档页数:15
《Java基础入门》课后习题及答案《Java基础入门》课后习题第1章Java开发入门一、填空题1、Java的三大体系分别是_JavaSE_____、_JavaEE_____、_JavaME_____。
2、Java程序的运行环境简称之为JRE_____。
3、编译Java程序需要使用_javac_____命令。
4、javac.exe和java.exe两个可执行程序存放在JDK 安装目录的bin______目录下。
5、path______环境变量用来存储Java的编译和运行工具所在的路径,而_classpath_____环境变量则用来保存保存Java虚拟机要运行的“.class”文件路径。
二、选择题1、以下选项中,哪些属于JDK工具?(多选)ABCDA、Java编译器B、Java运行工具C、Java文档生成工具D、Java打包工具2、Java属于以下哪种语言?CA、机器语言B、汇编语言C、高级语言D、以上都不对3、下面哪种类型的文件可以在Java虚拟机中运行?DA、.javaB、.jreC、.exeD、.class4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种?BA、Java文档制作工具B、Java解释器C、Java编译器D、Java启动器5、如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项?BA.d:\jdk; B.d :\jdk\bin; C.d:\jre\bin; D.d:\jre;三、问答题1、简述Java的特点。
面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。
2、简述JRE与JDK的区别。
JRE(Java Runtime Environment,Java运行时环境),它相当于操作系统部分,提供了Java程序运行时所需要的基本条件和许多Java基础类,例如,IO 类、GUI控件类、网络类等。
springboot开发技术(习题卷2)第1部分:单项选择题,共29题,每题只有一个正确答案,多选或少选均不得分。
1.[单选题]使用@Schedule注解定制表示每月的1日每一分钟都执行一次,以下写法正确的是()A)@Scheduled(cron = "0 ** 1 * ?")B)@Scheduled(cron = "0 * * 1 * *")C)@Scheduled(cron = "0 0 0 1 * *")D)@Scheduled(cron = "* * * 1 * ?")答案:A解析:2.[单选题]关于Spring Boot整合JSP模板技术的限制,以下说法错误的是( )A)Spring Boot默认的JAR包部署方式不支持JSP模板B)Undertow嵌入式容器部署Spring Boot项目,不支持JSP模板C)使用JSP模板时,无法对默认的错误处理器进行覆盖D)使用JSP模板时,无法自定义错误页面答案:D解析:3.[单选题]RabbitMQ提供的工作模式不包括( )。
A)单点模式B)发布订阅模式C)路由模式D)Headers答案:A解析:4.[单选题]关于Spring Boot项目的打包部署相关说法错误的是()A)使用IDEA快速方式创建的项目会自动导入项目打包插件B)Spring Boot项目默认以Jar包方式打包C)Spring Boot默认支持内嵌式Tomcat,在不添加任何依赖创建Spring Boot项目时,也会提供内嵌tomcatD)可以通过IDEA工具进行项目快速打包和部署答案:B解析:5.[单选题]以下关于Spring Data JPA映射实体类相关注解说法,正确的是()A)@Entity标注在类上,表示与数据表具有映射关系的实体类,必须使用name属性指定具体映射的表名B)@Id必须标注在类属性上,表示某一个属性对应表中的主键C)@Column标注在属性上,必须配合name属性表示类属性对应的表字段名D)@Transient表示该属性并非一个到数据库表的字段的映射答案:D解析:6.[单选题]下列关于springboot中Redis缓存注解相关属性的说法,错误的是( )A)value 和cacheNames属性作用相同,用于指定缓存的名称空间B)key 属性的作用就是指定缓存数据对应的唯一标识, 默认使用注解标记的方法参数值C)unless属性的作用是当指定的条件为true时,方法的返回值就会被缓存D)sync 属性表示数据缓存过程中是否使用异步模式,默认值为false答案:C解析:7.[单选题]下列关于 Spring Data JPA映射的实体类中相关注解的说法,正确的是( )A)使用Spring Data JPA进行数据查询映射时,需要在配置文件中开启驼峰命名映射B)使用@Entity注解时,还要使用name属性指定具体映射的表名C)@ld注解必须标注在类属性上,表示主键对应的属性D)@Transient注解表示指定属性不是到数据库表的字段的映射,ORM框架将忽略该属性答案:D解析:8.[单选题]启动Ribbon的类注解是:A)@RibbonClientB)@EnableClientC)@EnableDisscoveryClientD)@Ribbon答案:A解析:9.[单选题]下列关于Spring Boot的Profile多环境配置的说法,错误的是( )A)Spring Boot提供了两种多环境配置的方式: Profile 文件多环境配置和@Proflie注解多环境配置B)Profile配置文件的名必须满足application-{profile}.properties的格式C)可以在项目全局配置文件中配置spring poflis acive属性激活指定的多环境配置文件D)在多个自定义类上直接使用@Profile注解可以进行多环境配置答案:D解析:第三章填空题10.[单选题]下列关于Spring Boot自动配置原理的说法,错误的是( )A)@SpringBootApplication 只包含@SpringBooConfiguration、@EnableAutoConfiguration、@ComponentScan 3个注解B)@SpringBootConfiguration 注解表示当前类为-一个配置类并可以被组件扫描器扫描C)@EnableAutoConfiguration 的作用是启动自动配置,向容器中导入所有选中的自动配置类D)@ComponentScan注解的主要作用是扫描指定包及其子包下所有注解类文件作为Spring容器的组件使用答案:A解析:第二章填空题11.[单选题]spring 事件机制是使用( )A)订阅和发布模式B)只有订阅模式C)只有发布模式D)都错答案:A解析:12.[单选题]以下有关 Spring 中 Bean 的作用域说法正确的是( )。
android 中this的用法在Android开发中,this是一个非常常见的关键字,用于表示当前对象的引用。
它可以引用当前对象的方法,属性以及其他成员。
本文将一步一步回答关于在Android中使用this关键字的问题,并深入探讨其用法。
第一部分:什么是this关键字?在面向对象编程中,this是一个代表当前对象的隐式自引用的关键字。
它允许我们在一个类的方法中引用当前对象的成员。
在Android中,对象是指一个实例化的Activity、Fragment或者其他Android组件。
我们可以通过在方法中使用this关键字来访问当前对象的实例变量、实例方法以及其他成员。
它在许多场景中非常有用,特别是当我们需要在类的各个方法中引用当前对象的成员时。
第二部分:在构造函数中使用this关键字一个常见的用法是在构造函数中使用this关键字。
在构造函数中,this关键字用于调用当前类的其他构造函数。
例如:public class MyClass {private int value;public MyClass() {this(0); 调用带参构造函数,并传入0作为参数}public MyClass(int value) {this.value = value;}}在上面的例子中,我们在无参数的构造函数中使用this关键字来调用另一个带参数的构造函数。
这种用法可以让我们在构造函数中避免重复的代码,并提高代码的可读性和可维护性。
第三部分:在内部类中使用this关键字在Android开发中,常常会使用内部类来实现事件监听器等功能。
在内部类中,this关键字表示当前内部类的实例。
然而,如果我们希望在内部类中访问外部类的成员变量或方法,由于内部类和外部类的作用域不同,直接使用this关键字将会引起编译错误。
为了解决这个问题,我们可以在内部类中使用外部类的实例变量或方法时,使用外部类的类名加上this关键字。
例如:public class OuterClass {private int value;public void outerMethod() {InnerClass inner = new InnerClass();inner.innerMethod();}public class InnerClass {public void innerMethod() {OuterClass.this.value = 10;}}}在上面的例子中,我们使用了OuterClass.this.value来访问外部类的value变量。
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 类所在的包。
由于类的继承性,类所有的公有⽅法和变量都能被其⼦类继承。
Java2实用教程(第三版)课后习题参考答案第1章 Java入门1. 开发与运行Java程序需要经过哪些主要步骤和过程?答:(1)编写Java源文件:使用文本编辑器(Edit或记事本),拓展名为.java(2)编译Java源文件:使用Java编译器(javac.exe)。
得到字节码文件*.class(3)运行Java程序:Java应用程序使用Java解释器(java.exe)执行字节码文件;Java小应用程序使用支持Java标准的浏览器来执行。
2. 怎样区分应用程序和小应用程序?应用程序的主类或小应用程序的主类必须用public修饰吗?答:①应用程序必须有main方法,这个方法是程序执行的入口。
小应用程序没有main方法。
②应用程序的主类不一定用public修饰;小应用程序的主类必须用public修饰。
3. Java程序是由什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎样的?答:①Java程序由类组成。
②应用程序可以没有public类;小应用程序一定有一个类是public类(主类)。
③应用程序:如果只有一个类,源文件名与该类的类名相同,拓展名为.java;有多个类时,如果有public类(最多一个),源文件名与public类的类名相同,拓展名是.java;没有public类,源文件名与任何一个类的类名相同即可,拓展名为.java。
小应用程序:源文件名与主类的类名相同,拓展名是.java。
4. 在运行小程序的HTML文件中可以使用codebase属性指定小程序的字节码所驻留的目录。
如果不使用codebase属性,小程序的字节码文件必须和运行它的HTML文件在同一目录中。
编写一个小程序并将小程序的字节码存放在某个目录中,比如C:\5000;把运行该小程序的HTML文件(注意其中的codebase属性): <applet code=你的小程序的字节码 width=200 height=300 codebase=C:\5000></applet>存放在另一个目录中。
外部类与内部类的访问外部类与内部类之间的访问内部类相当于外部类的⼀个成员,和其它成员处于同⼀个级别,因此可以在内部类中直接访问外部类的各个成员(包括私有属性)。
需要注意的是在外部类中要想访问内部类的各个成员(这⾥也包括内部类的私有属性)就必须先实例化内部类,然后才能访问。
对于为什么能访问内部类的私有属性,是因为即使内部类的成员是私有的,但是也是在外部类中,和外部类的其它成员是平等的,只不过被内部类囊括是在内部中,因此访问都必须先实例化。
例如:class NodeManager{private Node root; //根节点//public int a = 3; //此处可以直接在内部类中访问,超出外部类要么⾃⼰访问,要么通过内部类的⽅法来访问//管理添加节点public void addNode(String name){if(root!=null){root.add(name);}else{root = new Node(name);}}public void deleteNode(String name){if(root.getName().equals(name)){root = root.next; //此处即使内部类是私有的,在外部类中也可以通过实例化的对象来访问}else{root.delete(name);}}//管理打印节点public void printNode(){if(root != null){System.out.print(root.getName());}root.print();}/* 此⽅法适⽤于在外部类外部实例化外部类让其访问内部类的属性public int getInt(){return b;}*///内部类,每个节点对象class Node{private String name; //节点名称private Node next; //表⽰当前节点的下⼀个节点 //此处的成员属性要么⾃⼰访问,要么通过外部类中实例化内部类对象访问,要么在整个类外部通过⽅法调⽤来访问 //构造⽅法public Node(String name){ = name;}//获得节点名称public String getName(){return name;}//添加节点public void add(String name){if(this.next != null){this.next.add(name);}else{next = new Node(name);}}//删除节点public void delete(String name){if(this.next != null){if(this.next.getName().equals(name)){this.next = this.next.next;}else{this.next.delete(name);}}}//打印所有节点public void print(){if(this.next != null){System.out.print("->"+this.next.getName());this.next.print();}else{System.out.println();}}/*此⽅法可以让在外部类外实例化的内部类对象访问外部类成员属性public int getInt2(){return a;}*/}}但是要是在整个类的外部不管是实例化外部类还是实例化内部类也好,都⽆法访问对⽅的属性或⽅法,只能通过⾃⼰的⽅法去调⽤对⽅的成员。
JAVA开发基础(习题卷90)第1部分:单项选择题,共57题,每题只有一个正确答案,多选或少选均不得分。
1.[单选题]假设类A有构造方法A(int a),则在类A的其它构造方法中调用该构造方法的语句格式是: ( )A)A(x)B)this. A(x)C)this(x)D)super(x)答案:C解析:2.[单选题]关于被私有保护访问控制符private protected修饰的成员变量,以下说法正确的是( )A)可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类B)可以被两种类访问和引用:该类本身、该类的所有子类C)只能被该类自身所访问和修改D)只能被同一个包中的类访问答案:D解析:3.[单选题]关于数组,下列说法中不正确的是A)数组是最简单的复合数据类型,是一系列数据的集合B)数组元素可以是基本数据类型、对象或其他数组C)定义数组时必须分配内存D)一个数组中所有元素都必须具有相同的数据类型答案:C解析:4.[单选题]关于JAVA序列化与反序列化的说法正确的是? ( )A)对象序列化是指将对象转换为字节序列的过程, 而反序列化则是根据字节序列恢复对象的过程。
B)任何类的对象都能被序列化C)对实现了Serializable 接口的类,采用默认的反序列化方式D)实现了Externalizable 接口的类,采用默认的序列化方式答案:A解析:5.[单选题]在JAVA中,要创建一个新目录,要使用( )类的实例。
A)FileB)FileOutputStreanC)PrintWriterD)Dir答案:A解析:6.[单选题]grid9][5]描述的是( )D)一维数组答案:C解析:7.[单选题]在JAVA语言中,下面变量命名合法的有:A)animalB)abstractC)packageD)final答案:A解析:8.[单选题]以下选项中,哪个是File类中isFile()方法返回值的类型()1分A)intB)booleanC)IntegerD)String答案:B解析:isFile()方法表示判断File对象是否是标准文件,其返回值类型是boolean。
this关键字的三种用法
this 关键字在编程中有以下三种用法:
1. 访问类的成员变量:在类的方法内部,通过 this 关键字可以明确地访问类的成员变量,解决与局部变量冲突的问题。
在上述代码中,有两个 age 变量,一个是类的成员变量,一个是构造方法的局部变量,this.age 使用的就是成员变量,而单单一个 age 则是指局部变量。
2. 在构造方法中调用其他构造方法:因为构造方法是在实例化对象时,被 Java 虚拟机自动调用的,所以构造方法无法像其他方法一样自由地调用,这时可以使用 this 关键字在一个构造方法中调用其他构造方法。
3. 调用成员方法:this 关键字可以表示对当前对象的引用,因此可以调用当前类的普通方法。
在实际使用中,this 关键字的用法可能会根据编程语言和具体的上下文而有所不同。
在使用时,需要根据具体情况来确定正确的用法。
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内部类和lambda选择题近年来,Java内部类和lambda表达式成为了Java开发中的热门话题。
它们的使用在一定程度上可以提高代码的简洁度和可读性。
然而,对于初学者来说,这两个特性的深入理解可能略显困难。
在这里,我们来总结一些关于Java内部类和lambda表达式的选择题,帮助大家更好地掌握这两个特性。
1. 下列关于内部类的说法中,正确的是:A. 内部类可以访问外部类的静态成员和非静态成员B. 内部类中可以定义静态成员和静态方法C. 内部类可以被声明为staticD. 内部类可以是public、protected、默认访问和private四种访问权限答案:A解析:内部类可以自由访问外部类的成员,包括静态成员和非静态成员;内部类中不允许定义静态成员和静态方法;内部类可以被声明为static,这种内部类称为静态内部类;内部类可以是public、protected、默认访问和private四种访问权限。
2. 下列代码中使用了匿名内部类的是:A.```javapublic class Test {public static void m本人n(String[] args) {new Thread(new Runnable(){public void run() {System.out.println("Hello, World!");}}).start();}}```B.```javapublic class Test {public static void m本人n(String[] args) {Runnable r = () -> System.out.println("Hello, World!"); new Thread(r).start();}}```C.```javapublic class Test {public static void m本人n(String[] args) {new Thread(() -> System.out.println("Hello, World!")).start(); }}```D.```javapublic class Test {public static void m本人n(String[] args) {class MyRunnable implements Runnable {public void run() {System.out.println("Hello, World!");}}new Thread(new MyRunnable()).start();}}```答案:A解析:A中使用了匿名内部类实现了Runnable接口的run方法;B中使用了lambda表达式;C中同样使用了lambda表达式;D中使用了局部内部类来实现Runnable接口的run方法。
一、判断题1、一个Java源程序可有多个类,但只仅有一个public类,而且程序名与public类名相同。
对2、如果类A和类B在同一个包中,则除了私有成员外,类A可以访问类B中所有的成员。
对3、接口中的成员变量全部为常量,方法为抽象方法。
对4、抽象类可以有构造方法,可以直接实例化。
错5、对static方法的调用可以不需要类实例。
对6、包含抽象方法的类一定是抽象类。
对7、方法中的形参可以和方法所属类的属性同名。
对8、接口无构造器,不能有实例,也不能定义常量。
错9、类的实例对象的生命周括实例对象的创建、使用、废弃、垃圾的回收。
对10、Java应用程序的入口main方法只有一种定义法。
对二、选择题1、下列答案正确的是(A)A) 在同一个Java源文件中可以包含多个类,只能有一个被声明为publicB) 在同一个Java源文件中只能包含一个类,并被声明为publicC) 在同一个Java源文件中可以包含多个类,都可以被声明为publicD) 在同一个Java源文件中可以包含多个类,只能有一个被声明为default2、Java实现动态多态性是通过( B )实现的。
A) 重载B) 覆盖C) 接口D) 抽象类3、下列哪一个是正确的方法重载描述(A)A) 重载方法的参数类型必须不同B) 重载方法的参数名称必须不同C) 返回值类型必须不同D) 修饰词必须不同4、final关键字不可以用来修饰( D )A) 类B) 成员方法C) 域D) 接口5、接口的所有成员方法都具有( B )属性A) private, final B) public, abstractC) static, protected D) static6、Java的封装性是通过(A)实现的A) 访问控制B) 设计内部类C) 静态域和静态方法D) 包7、下列接口或类不属于java.util.*包的是( D )A) Collection B) V ector C) Map D) Integer8、下述哪一组方法,是一个类中方法重载的正确写法?(A)A) int addV alue( int a, int b ){return a+b;}float addV alue ( float a, float b) {return a+b;}B) int addV alue (int a, int b ){value=a+b; }float addV alue ( int a, int b) {return (float)(a+b);}C) int addV alue( int a, int b ){return a+1;}int addV alue ( int a, int b) {return a+b;}D) int addV alue( int a, int b ) {return a+b;}int addV alue ( int x, int y ) {return x+y;}9、下列说法哪个是正确的?( C )A) 子类不能定义和父类同名同参数的方法B) 子类只能继承父类的方法,而不能重载C) 重载就是一个类中有多个同名但有不同形参和方法体的方法D) 子类只能覆盖父类的方法,而不能重载10、对于下列代码:public class Parent {public int addV alue( int a, int b) {int s;s = a+b;return s;}}class Child extends Parent {}下述哪个方法不可以加入类Child? ( B )A) public int addV alue( int a, int b,int c ){// do something...}B) public void addV alue (int a, int b ){// do something...}C) public int addV alue( int a ){// do something...}D) public int addV alue( int a, int b ) {//do something...}11、以下程序段输出结果的是( B )public class A implements B {public static void main(String args[]) {int i;A c1 = new A();i= c1.k;System.out.println("i="+i);}}interface B {int k = 10;}A) i=0 B) i=10 C) 程序有编译错误D) i=true12、阅读下面的程序,输出结果是( B )public class TestDemo {int m=5;public void some(int x) {m=x;}public static void main(String args []) {new Demo().some(7);}}class Demo extends TestDemo {int m=8;public void some(int x) {super.some(x);System.out.println(m);}}A) 5 B) 8 C) 7 D) 编译错误13、下述哪个说法是不正确的?(A)A) 局部变量在使用之前无需初始化,因为有该变量类型的默认值B) 类成员变量由系统自动进行初始化,也无需初始化C) 参数的作用域就是所在的方法D) for语句中定义的变量,当for语句执行完时,该变量就消亡了14、下述那一个保留字不是类及类成员的访问控制符。
第1章 Java语言概述习题一一、选择题1.下面关于Java Application 程序结构特点描述中,错误的是( D )。
A.一个Java Application程序由一个或多个文件组成,每个文件中可以定义一个或多个类,每个类由若干个方法和变量组成。
B.Java程序中声明有public类时,则Java程序文件名必须与public类的类名相同,并区分大小写,扩展名为.java。
C.组成Java Application程序的多个类中,有且仅有一个主类。
D.一个.java文件中定义多个类时,允许其中声明多个public类。
2.编译Java程序后生成的面向JVM的字节码文件的扩展名是( B )。
A..java B..class C..obj D..exe3.下面关于Java 语言特点的描述中,错误的是(A)。
A.Java是纯面向对象编程语言,支持单继承和多继承。
B.Java支持分布式的网络应用,可透明地访问网络上的其他对象。
C.Java支持多线程编程。
D.Java程序与平台无关、可移植性好。
4.Java SE的命令文件(java、javac、javadoc等)所在目录是( C )。
A.%JAVA_HOME%\jre B.%JAVA_HOME%\libC.%JAVA_HOME%\bin D.%JAVA_HOME%\demo5.下列关于运行字节码文件的命令行参的描述中,正确的是(C)。
A.命令行的命令字被存放在args[0]中。
B.数组args[]的大小与命令行的参数的个数无关。
C.第一个命令行参数(紧跟命令字的参数)被存放在args[0]中。
D.第一个命令行参数被存放在args[1]中。
7.Java的核心包中,提供编程应用的基本类的包是(B)。
A. B. C. D.8.编译Java程序时,用于指定生成class文件位置的选项是(A)。
A.-d B.-g C.-verbose D.-nowarn9.下列标识符(名字)命名原则中,正确的是( C )。
C#成员默认访问权限(public、private、protected、internal)1.C#五个修饰符的权限修饰符 级别 适⽤成员 解释public 公开 类及类成员的修饰符 对访问成员没有级别限制private 私有 类成员的修饰符 只能在类的内部访问protected 受保护的 类成员的修饰符 在类的内部或者在派⽣类中访问,不管该类和派⽣类是不是在同⼀程序集中internal 内部的 类和类成员的修饰符 只能在同⼀程序集(Assembly)中访问protected internal 受保护的内部:如果是继承关系,不管是不是在同⼀程序集中都可以访问;如果不是继承关系只能在同⼀程序集中访问2.类class的访问权限类的访问修饰符只有两种:public、internal。
如果class前⾯没有加任何修饰符的话,默认是internal。
public class:任何地⽅都可以访问到。
internal class或class:只有同⼀个程序集中能访问到(程序集代表能⽣成exe或dll的项⽬,⼀个程序集中可以有多个命名空间)。
例如:⼀个解决⽅案中有两个项⽬,就代表有两个程序集,两个程序集分别为A、B。
其中A中有个class为internal级别的,那么B引⽤了A的程序集也是不能调⽤这个类。
3.类成员(字段和⽅法)的访问权限类成员的修饰符可以为:public、private、protected、internal、protected internal。
如果类成员(字段和⽅法)前⾯没有加有修饰符的话,默认访问权限是private。
C#默认给⾮abstract类⽣成的构造函数为public,给abstract类⽣成的构造函数为protected⾃⼰写的构造函数,如果不标⽰访问权限,默认为private4.接⼝interface的访问权限同class⼀样,可以为public和internal,默认为internal但是接⼝中的⽅法默认访问权限为public,并且不能显⽰的定义其他访问类型。
今天这节课我们来学习类的构造方法和析构方法,同学们现在回忆一下在类一系列中,学习到创建一个类ClassName的实例,也就是对象ObjName时基本语法为:ClassName bjName=new ClassName();我说过,new后面的ClasName()实际上指的是这个类的构造方法,而且我也说过,这个()中可以有参数,这个有参数,就是指构造方法可以有参数,那么什么是类的构造方法呢?构造方法--------------------------------------------------------------------------------构造方法又叫构造函数,也有人叫做构造器,其实就是对类进行初始化。
构造方法是一种特殊的方法,在类实例创建之前执行,用来初始化对象,完成对象创建前所需的相关设定,构造方法允许将类实例初始为有效状态的特殊方法,这就是构造方法的定义,用通俗的话说,就是开车前的暖车工作,用洗衣机之前的接上电源的工作,参数可以有多个可以这样理解,洗衣机的插头有两头的、有三项的,在创建洗衣机对象的时候,要分清插头的种类,才能创建成功对象。
为什么说构造方法是特殊的方法呢?因为构造方法本身没有返回值,并且通常是public访问类型,方法的名称必须与类名相同,当我们没有明确的在类中定义构造方法的时候,例如我们以前所定义的类,都是没有定义构造方法的,这时系统会使用默认的构造方法,如创建ClassName类的默认构造方法,public ClassName(){}。
默认的构造方法并没有进行任何类初始化行为,你可以自己定义构造方法,当然如果你有自定义构造方法,那么默认的构造方法就会失效了。
也就是说,当我们在ClassName类中没有定义构造方法时,C#语言会生成一个空的构造方法ClassName(),当然这个空的方法是什么也没做,只是为了让我们定义的类能够在创建对象时顺利的实例化而已。
构造方法可以有两个,因为参数的不同区别开,这就构成了方法的重载,方法重载的最大的好处在与可以利用相同的名称来组织应用程序的方法成员,当一个复杂的类被创建的时候,对功能相同的方法最好采用相同的命名方式,用不同的参数来区别,比如,计算面积时,我们就可以把四边形面积的计算方法的名字起同一个,用参数来区别如正方形定义一个参数(一个边长),长方形定义三个参数(一个长,一个宽,另一个长方形的标志如0),梯形定义三个参数(一个底,一个高,另一个梯形的标志如1),通过第三个参数标志区别长方形和梯形不同的面积公式。
类方法成员变量和局部变量的可用修饰符权限在Java编程语言中,类、方法、成员变量和局部变量可以使用不同的修饰符权限来控制其可见性和访问级别。
这些修饰符权限可以分为四个类别:访问权限、非访问权限、继承性和抽象性。
以下是每个类别中可用的修饰符权限的详细讨论。
1.访问权限修饰符:- public:public是最高级别的访问权限修饰符,可以被任何类、方法、成员变量和局部变量访问。
当一个类、方法、成员变量或局部变量被声明为public时,它可以被任何类或方法访问。
- protected:protected修饰符只允许同一包中的类访问,并且可以被不同包中的子类访问。
当一个成员变量或方法被声明为protected时,它可以被访问的范围包括同一类、同一包中的类和不同包中的子类。
-默认(默认):如果没有明确指定访问权限修饰符,则默认修饰符将应用。
默认访问级别是包级别访问权限,即同一包中的类可以访问。
但是,在不同包中的类无法访问。
- private:private是最低级别的访问权限修饰符,它仅允许在同一类中访问。
当一个成员变量或方法被声明为private时,它只能在包含它的类中访问。
2.非访问权限修饰符:- final:final修饰符表示一个类、方法、成员变量或局部变量是不可更改的。
当一个类被声明为final时,它不能被继承。
当一个方法被声明为final时,它不能被子类重写。
当一个成员变量被声明为final时,它不能被修改。
当一个局部变量被声明为final时,它不能被重新赋值。
- static:static修饰符表示一个类、方法、成员变量或局部变量是静态的。
当一个成员变量被声明为static时,它成为类级别的变量,所有该类的实例共享相同的变量。
当一个方法被声明为static时,它成为类级别的方法,可以直接从类中调用,无需创建实例。
当一个类被声明为static时,它成为静态内部类,无需创建外部类的实例即可访问。
⼀、单选题(共 100.00 分)Java 程序设计(深圳⼤学继续教育学院引进课程) 测验-3.8访问权限1. A.B.C.D.this 关键字指的是?当前对象指针当前类的实例对象当前对象引⽤当前类的⽅法正确答案:B2. A.B.C.D.如果类中的成员变量仅仅可以被同⼀包中其他类访问,则使⽤如下哪个约束符?privatepublicprotectedno modifier正确答案:D3. A.B.C.D.如果任何包中的⼦类都能访问超类中的成员,那么超类中的成员使⽤哪个限定词最好( )publicprivateprotectedtransient正确答案:C4. A.B.C.D.不允许作为类及类成员的访问控制符的是:publicprivatestaticprotected正确答案:C5. A.B.C.D.下⾯哪个修饰符修饰的⽅法只能被本类中的其他⽅法使⽤protectedstaticprivatepublic正确答案:C6. A.某个类的成员变量可以被同⼀个包中的⼦类访问,但不能被另⼀个包中的类(含⼦类)访问,该如何定义?变量应该⽤public 做修饰。
B.C.D.变量应该⽤private 做修饰。
变量应该⽤protected 做修饰。
变量不需做任何修饰。
正确答案:D7. A.B.C.D.关于被私有访问控制符private 修饰的成员变量,以下说法正确的是( )可以被三种类所引⽤:该类⾃身、与它在同⼀个包中的其他类、在其他包中的该类的⼦类可以被两种类访问和引⽤:该类本身、该类的所有⼦类只能被该类⾃身所访问和修改只能被同⼀个包中的类访问正确答案:C。