栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

T 1-5

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

T 1-5

t1
  1. 对于 int a[]=new int[3];下列哪个叙述是错误的?( )
    A.a.length的值是3
    B.a[1]的值是1
    C.a[0]的值是0
    D.a.[a.length-1]的值等于a[2]的值
java的数据类型

基本数据类型 && 引用数据类型

数据类型的初始值 测试结果

character

打印出一个小方框 是因为他的值是’u0000’,代表在Unicode里的值是null ,是不可打印字符 。

String

String不是基本的数据类型,是final修饰的java类,是引用类型
而引用数据类型的初始值是null

以下是各数据类型的默认值

总结

都是“0”所对应的值

t2
  1. 下列哪个叙述是错误的?( )
    A. 如果源文件有package语句,该语句必须是源文件的第一条语句。
    B.一个Java源文件必须要有package语句。
    C.一个源文件默认有“import java.lang.*”语句。
    D.一个Java源文件可以有多条import语句。
A

package import class的顺序
package > import > class

B

啊错错错

C

是的
java.lang包是java语言的核心,它提供了java中的基础类。
包括基本Object类、Class类、String类、基本类型的包装类、基本的数学类等等最基本的类。

D

见A
以及平时的代码

t3
  1. 对于下列Tom类,哪个叙述是正确的?( )
    A.程序输出结果为:100
    B. 有2个构造方法
    C.有编译错误
    D。程序运行时输出:hello100
public class Test{
   public static void main(String args[ ]){
Tom  cat1=new  Tom();
Tom  cat2=new  Tom(100);
}
}

class  Tom{
	void Tom( ){
System.out.print(“hello”);
}
	Tom(int  n){
System.out.print(n);
}
}
两个构造方法?

无参的和含参的?
void Tom… 假的构造方法,是方法,但不是构造方法
方法名可以与类名相同

编译错误原因


new Tom(100)需要使用这个构造方法
但是并没有这个构造器
只有这个普通方法
找不到这个构造方法,就编译错误了

构造方法

public 类名(参数){构造初始化操作}
是没有返回类型的,并不是返回类型是void

t4
  1. 哪个叙述是正确的?( )
    A.在子类的构造方法中显示地写出super时,super关键字形成的语句必须是子类构造方法的第1条语句。
    B.子类和父类必须在一个包中。
    C.可以同时用final和abstract修饰同一个方法。
    D.abstract类中,必须要有abstract方法。
A

对

B

不一定
例如:protected访问修饰符的作用

C

解释1:
原因:初始化当前对象时,先保证父类对象先初始化 。
如果不指定构造器之间的调用关系 ,编译器会自动加上 super()且放在第一行 ;
所以,如果指定了构造函数间的调用,那么this()必须在第一行,以保证在执行任何动作前,对象已经完成了初始化。

解释2
构造方法,作用就是在JVM堆中构建出一个指定类型的对象。如果调用了两个这种形式的方法,就代表着构建出了两个对象。
为了避免对对象本身进行操作时,对象本身还未构建成功(也就找不到对应对象),所以对this()或super()的调用只能在构造方法中的第一行实现,防止异常。

总结:
避免多次创建对象,同一个方法内只能调用一次this()或super()。
为了避免操作对象时对象还未构建成功,需要this()和super()的调用在第一行实现以防止异常。

D

抽象方法必须要抽象类
抽象类不一定有抽象方法
充分不必要?也不对
还有接口的存在

t5
  1. 下列代码的输出结果 ( )
    A 29: 98 B 10: 10 C 19: 88 D 29: 88
class Animal{
	int  m=9;
	public  int get(int n){   return  n+m;}
	public int see(int  n){ return n+m;}
}
class Dog extends Animal {
	int m=18;
	public int get(int n){
	return  n+m;
}
}
public  class  E{
	public static void main(String args[ ]){
	Animal animal =null
	Dog dog=new Dog();
	animal =dog;
	animal.m=19;
	dog.m=88;
	int result1=animal.see(10);
	int result2=animal.get(10);
	System.out.printf(“%d:%d”,result1,result2);              
}
}

向上转型知识介绍

父类引用指向子类对象
Animal animal=new Dog();
在调用方法时,会遗失除去与父类共有的方法。
也就是说,只能调用父类里存在的方法名。

在向上转型的题目中: 对于方法 1 判断是否是父类中存在的方法(包括返回类型、方法名、参数都要一致)

若不是,则报错
若是,转到2

2 判断是不是子类中存在的方法

若是,则调用子类的方法
若不是,则调用父类的方法

对于变量

方法可以被重写
但是变量不会被覆盖
并且在向上转型后,若调用子类的特有变量则报错。

解析:
Animal animal =null;
//定义一个父类引用指向null
Dog dog=new Dog();
//定义一个子类引用指向子类对象
animal =dog;
//使父类引用指向dog指向的子类对象,两个引用指向同一个对象
animal.m=19;
//通过animal引用,改变的是父类的m值,父类m=19
dog.m=88;
//通过dog引用,改变的是子类的m值,子类m=88
int result1=animal.see(10);
//see仅存在父类方法中,调用父类的方法
//return 10+19
int result2=animal.get(10);
//get是父类子类共有的方法,调用子类的方法  
//return 10+88
System.out.printf("%d:%d",result1,result2);
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/953299.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号