快捷搜索: 王者荣耀 脱发

牛客网java刷题笔记2019-1-4

牛客网java刷题笔记 2019-1-4

1.java中可以用类中构造器调用其他类构造器(这个和C++中构造函数很类似)用于初始化程序变量值, 构造器和方法的区别:

    功能和作用的不同 构造器是为了创建一个类的实例。这个过程也可以在创建一个对象的时候用到:Demo d = new Demo(); 相反,方法的作用是为了执行java代码。 修饰符,返回值和命名的不同 构造器和方法在下面三个方便的区别:修饰符,返回值,命名。和方法一样,构造器可以有任何访问的修饰: public, protected, private或者没有修饰(通常被package 和 friendly调用). 不同于方法的是,构造器不能有以下非访问性质的修饰: abstract, final, native, static, 或者 synchronized。 返回类型也是非常重要的。方法能返回任何类型的值或者无返回值(void),构造器没有返回值,也不需要void。 两者的命名不同。构造器使用和类相同的名字,而方法则不同。按照习惯,方法通常用小写字母开始,而构造器通常用大写字母开始。构造器通常是一个名词,因为它和类名相同;而方法通常更接近动词,因为它说明一个操作。
//this用法
public class Platypus {
          
    

String name; 

Platypus(String input) {
          
    
name = input; 
} 

Platypus() {
          
    
this("John/Mary Doe"); 
} 

public static void main(String args[]) {
          
    
Platypus p1 = new Platypus("digger"); 
Platypus p2 = new Platypus(); 
} 
}

在上面的代码中,有2个不同参数列表的构造器。第一个构造器,给类的成员name赋值,第二个构造器,调用第一个构造器,给成员变量name一个初始值 “John/Mary Doe”.

//super用法
class Mammal {
          
    
void getBirthInfo() {
          
    
System.out.println("born alive."); 
} 
} 

class Platypus extends Mammal {
          
    
void getBirthInfo() {
          
    
System.out.println("hatch from eggs"); 
System.out.print("a mammal normally is "); 
super.getBirthInfo(); 
} 
}

在上面的例子中,使用super.getBirthInfo()去调用超类Mammal中被重载的方法。

构造器使用super去调用超类中的构造器。而且这行代码必须放在第一行,否则编译将出错。看下面的例子:

public class SuperClassDemo {
          
    
SuperClassDemo() {
          
   } 
} 

class Child extends SuperClassDemo {
          
    
Child() {
          
    
super(); 
} 
}

在上面这个没有什么实际意义的例子中,构造器 Child()包含了 super,它的作用就是将超类中的构造器SuperClassDemo实例化,并加到 Child类中。 汇总区别表格如下:

主题 构造器 方法 功能 建立一个类的实例 java功能语句 修饰 不能用bstract, final, native, static, or synchronized 能 返回类型 没有返回值,没有void 有返回值,或者void 命名 和类名相同;通常为名词,大写开头 通常代表一个动词的意思,小写开头 this 指向同一个类中另外一个构造器,在第一行 指向当前类的一个实例,不能用于静态方法 super 调用父类的构造器,在第一行 调用父类中一个重载的方法 继承 构造器不能被继承 方法可以被继承 编译器自动加入一个缺省的构造器 自动加入(如果没有) 不支持 编译器自动加入一个缺省的调用到超类的构造器 自动加入(如果没有) 不支持
    通过 ClassLoader 寻找和装载 class 文件 解释字节码成为指令并执行,提供 class 文件的运行环境 进行运行期间垃圾回收 提供与硬件交互的平台
经验分享 程序员 微信小程序 职场和发展