牛客网6.17

(1)

局部变量可以和成员变量重名,不加“this”修饰时,优先使用最近的变量。

(2)

static修饰的变量为静态成员变量;

static修饰的方法为静态方法;

静态成员变量,静态方法可以直接通过类名或对象名去调用;

因此A,B,C对;

非静态方法,必须通过对象名去调用;

(3)

抽象方法不能有方法体,仔细点可以看到有大括号。

B 接口里的方法只能用 public 和 abstract 修饰,如果你不写也没关系,默认的也是 public abstract 修饰.

(4)

有以下代码:

1

2

3

4

5

6

7

8

9

10

11

12

class A{

    public A(String str){

         

    }

}

public class Test{

    public static void main(String[] args) {

        A classa=new A("he");

        A classb=new A("he");

        System.out.println(classa==classb);

    }

}

请问输出的结果是: false

解析:

 因为== 表示的是否指向的是同一个内存。

 System.out.println(classa.equals(classb));   如果这这样输出 答案也是错误的 因为子类没有覆盖Object

的equals()方法,而默认调用==的这个方法   判断两个对象是否相等需要覆盖equals()方法和hashcaode()方法

(5)

在Java中修饰符总共有一下几种:  

1.访问控制修饰符  
   分别有:public private protected,缺省  

2.其它修饰符  
   
  分别有:abstract,final,static,native,synchronized,transient,volatile等  


对于形式参数只能用final修饰符,其它任何修饰符都会引起编译器错误 。但是用这个修饰符也有一定的限制,就是在方法中不能对参数做任何修改。  

不过一般情况下,一个方法的形参不用final修饰。只有在特殊情况下,那就是:方法内部类。   

一个方法内的内部类如果使用了这个方法的参数或者局部变量的话,这个参数或局部变量应该是final。  

通过以上分析,你应该知道答案了吧。  

因为字段修饰符包括很多(上面写的),但是方法修饰符只能用final这一个修饰符。   

所以说这句话不对。 

参数可以是值也可以是对象,且实参才是真正被传递的参数,形参就像局部变量

(6)

子类的构造方法总是先调用父类的构造方法,如果子类的构造方法没有明显地指明使用父类的哪个构造方法,子类就调用父类不带参数的构造方法。
而父类没有无参的构造函数,所以子类需要在自己的构造函数中显示的调用父类的构造,如果没有调用的话,那么就会进行报错

(7)

java中 String str = "hello world"下列语句错误的是?

str+='  a'//str += 'a'   和 str +="a"都是对的,但是如果a前面加一个空格,那么只能用双引号了。代表字符串

int strlen = str.length//这句会出错,数组有length属性,字符串只有length()方法
str=100//int 无法直接转成String类型

(8)

Java程序的种类有:

(a)内嵌于Web文件中,由浏览器来观看的_Applet

(b)可独立运行的 Application

(c)服务器端的 Servlets

(9)

java是类C语言,从C++改进而来

去掉了指针和多继承,采用自动垃圾回收等

(10)

 abstract可以修饰方法和类,不能修饰属性。抽象方法没有方法体,即没有大括号{}

(11)

父类静态代码块-->子类静态代码块-->父类普通代码块-->父类构造方法-->子类代码块-->子类构造方法;

类加载的顺序

(12)

重写是父类与子类之间多态性的一种表现
重载是一个类中多态性的一种表现

(13)

给出下面的代码段:

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;
}}
在代码说明// assignment x=a, y=b处写入如下哪几个代码是正确的?() 

x=a; y=b;
this(a,b);

new Base(a,b);

不能直接使用Base(a,b);//这个他不是普通方法

猜你喜欢

转载自blog.csdn.net/weixin_41673515/article/details/92614427