在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。

package com.test;

public class Animal {
    public void say() {
        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();
        
        Animal animal1 = new Animal();    
        Tiger tiger1 = (Tiger)animal1;   //类型转换异常java.lang.ClassCastException,属于运行时异常,属于不受检查异常
        tiger1.say();                    //内存中就不是Tiger,就该异常。
        
        Animal animal2 = new Tiger();
        Lion lion2 = (Lion)animal2;      //类型转换异常,内存中时Tiger,转成Lion,运行时异常

        Tiger temp = new Tiger();
        try {
            temp.say();                //从main方法中的调用看,就算抛出了运行时异常,也需要不用try-catch捕获
        }catch(Exception e ) {        //当然捕获了也行
            e.printStackTrace();
        }
    }
}

class Tiger extends Animal{
    public void say() throws RuntimeException {  //虽然RuntimeException可以不声明,但声明了也行
        System.out.println("Tiger");    
    }
    public void sayHi() {
        System.out.println("Hi");
    }
}

class Lion extends Animal{
    public void say() {
        System.out.println("Lion");
    }
}

public static void main(String[] args) {
        String s = null;
        System.out.println(s);        //输出null
        System.out.println(s.toString());    //java.lang.NullPointerException,编译是就报空指针警告
    }

public class Test {
    public static void main(String[] args) {
        System.out.println(div(1,1));    //返回值是0
    }
    
    static double div(double a, double b) {
        try {
            return 1.0;
        }catch(Exception e) {
            e.printStackTrace();
        }finally {        //没有finally会报错。即便return 1.0一定会返回。
            return 0;
        }
    }
}


public static void main(String[] args) {
        int x = 4;
        System.out.println((x>4)?9.9:9);    //9.0
        System.out.println((x>4)?9:8);    //8
    }