今天由于有事,没什么时间进行多的内容的学习。明天补上!
1.java中的构造方法
1.java中的构造方法
使用new + 构造方法 创建一个新的对象
构造方法是定义在java类中的一个用来初始化对象的方法(构造方法也是方法)
特点:
public 构造方法名(){
//初始化代码
}
没有返回值
方法名与类名相同
可以指定参数
java中可以有多个构造函数,如果没有申明构造函数,会自动默认一个无参的构造函数
如果指定了一个有参的构造函数,这个时候是不会默认一个无参的构造函数
要是在创建对象的时候用的是无参的构造函数就会报错,所以,一般会在申明有参构造函数的同时,申明一个无参的构造函数,防止出错。
2.java中static关键字
static可以用来修饰方法也可以用来修饰变量
静态方法:可以在没有创建对象的情况下,直接通过类名来调用。所以在静态方法中
不能访问非静态方法和非静态变量,但是在非静态方法和变量中,可以调用
静态方法和成员。
在普通方法中可以直接访问同类的非静态变量和静态变量,静态方法中不能直接访问非静态变量!!!
静态变量:静态变量可以被所有类的对象共享,在内存中只存在一个副本,只会在类加载的时候
被初始化,而非静态变量只有在创建对象的时候才会被初始化,当类创建多个对象的时候
就会存在多个副本,并且各个副本之间是互不影响。
static不可以用来修饰局部变量,没有为什么,java语法!
static初始化块:static关键字还有一个比较关键的作用就是 用来形成静态代码块以优化程序性能。static块可以置于类中的任何地方,类中可以有多个static块。
在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次。在类加载的时候,静态初始化块执行一次,并且静态初始化
块只能给静态变量赋值,不能初始化普通的成员变量。
程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。由于静态初始化块只在类加载时执行一次,所以当再次创建对象 hello2 时并未执行静态初始化块。