我是靠谱客的博主 无限鸵鸟,最近开发中收集的这篇文章主要介绍java 易错题_java错题集(1-3),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在Test.java中下面类的定义错在哪里?

protected class test extends T1, T2{}

1、外部类的访问修饰符只有public和默认(friendly)。

2、如果该类的定义是public则和源文件名不同,如果源文件中没有被public修饰的类,文件名可以任意不用与任一个类相同。

3、java只有单继承。

给出下面的代码段:

public class Base{

int w, x, y, z;

public Base(int a, int b){

x = a; y = b;

}

public Base(int a, int b, int c, int d){

//assignment x = a, y=b

w = d; z = c;

}

}

在注释的内容处可以填写哪些内容。(c,d)

A: Base(a,b); B: x=a,y=b; C: x=a;y=b; D: this(a,b);

其中A的报错信息为,该方法没有定义。应该是只能通过this调用。一条语句只能有一个赋值语句。

像B选项只能出现在声明语句中。并且this和super必须为第一句话,所以它俩不能共存。

a = 20 的返回值是20,即赋值语句的返回值是该值。

下面那个函数是public void example(){}的重载函数。(a,d)

A: public void example(int m){} B: public int example(){}

C: public void example2(){} D: public int example(itn m, float f){}

java函数重载有三条

1、函数名相同

2、参数个数不同或者参数类型不同

3、函数重载和返回值类型无关(即只改变返回值不算重载,但是重载可以改变返回值)

String [] strs = new String[3]{"a", "b", "c"}; 该语句错误,不能这样写。

类名 对象名; 这样的对象声明只会分配一个指针。并没有分配内存对象空间。

显然,private和abstract是不能同时修饰一个函数的。

局部变量不能有访问修饰符,因为局部代码执行过后局部变量就不存在了。

局部变量没有默认值,但是数组在new后其中的元素会被初始化为0值(包括对象数组)。

double可以用%,37.2%10==7.2。

public static void main(String args []),这个args可以换成别的,随心情。

java对象的三个特点:封装、继承、多态,四个特点就加一个抽象。

float m = 5/2。此时m的值为2.0。

api就是人家提供的很多已经写好的类,简化我们的开发。

i+1>i不一定为真,i可能溢出。整形溢出时变成-0。

静态方法或者静态代码块中不能有this、super。

packagecom.test;public classAnimal {public voidsay() {

System.out.println("Animal");

}public static void main(String[] args) { //下面部分所有的代码都不会报错

Animal animal = (Animal)new Tiger(); //赋值右边的类型转换毫无意义,不加也会上转型的。

animal.say(); //输出Tiger,调用的时候,看内存中到底是谁,是谁就是谁的方法。//animal.sayHi();//注释内容会报错,父类没有子类中自己定义的方法。

Tiger tiger = (Tiger)animal; //原本就是Tiger类的对象,向下转型没毛病。

tiger.say();

Tiger temp= newTiger();try{

temp.say();//从main方法中的调用看,就算抛出了这个异常,也需要不用try-catch捕获

}catch(Exception e ) { //捕获了也行

e.printStackTrace();

}

Animal animal1= newAnimal();

Tiger tiger1= (Tiger)animal1; //类型转换异常java.lang.ClassCastException,属于运行时异常,属于不受检查异常

tiger1.say(); //内存中就不是Tiger,就该异常。

Animal animal2= newTiger();

Lion lion2= (Lion)animal2; //类型转换异常,内存中时Tiger,转成Lion,这种编译时就显示异常,运行时更是

}

}class Tiger extendsAnimal{public void say() throws RuntimeException { //虽然RuntimeException可以不声明,但声明了也行

System.out.println("Tiger");

}public voidsayHi() {

System.out.println("Hi");

}

}class Lion extendsAnimal{public voidsay() {

System.out.println("Lion");

}

}

public static voidmain(String[] args) {

String s= null;

System.out.println(s);        //输出null

System.out.println(s.toString());//java.lang.NullPointerException,编译是就报空指针异常,运行后更是

}

原文:https://www.cnblogs.com/ant-xu/p/11305096.html

最后

以上就是无限鸵鸟为你收集整理的java 易错题_java错题集(1-3)的全部内容,希望文章能够帮你解决java 易错题_java错题集(1-3)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(74)

评论列表共有 0 条评论

立即
投稿
返回
顶部