构造方法与代码块
*
* 构造方法:调用时候的构成:类名+()
* 作用:对对象的属性进行初始化,如果我们不自己创建构造方法,系统会调用默认的无参构造方法.
*
* 创建自己的构造方法:
* 分类:
* 无参的构造方法:会将成员变量初始化成null或0或false等
* 有参的构造方法:会将成员变量进行初始化并赋值(赋值成通过参数传入的值)
*
* 定义时的基本构成:
* 修饰词 方法名(参数列表){
* 方法体
* }
* 注意点:1.没有返回值这一项 2.方法名必须与当前的类名相同
*
*
* 使用构造方法的注意点:
* 1.一旦创建了自己的构造方法,就不会再去调用系统默认的构造方法.
* 2.多个构造方法之间是重载的关系
*
* this:是一个关键字,是一种引用数据类型,代表的是当前的对象.保存的是当前对象的地址.
* 场景:想在当前类的内部拿到当前对象的引用的时候使用this
*
* this的作用:1.区分成员变量和局部变量
* 2.可以在构造方法中调用其他重载的构造方法,提高代码的复用性,简化代码.
*
* 关于this 的注意点:
* 1.在作为方法到时候,只适用于构造方法.
* 2.不能自己调用自己--死循环
* 3.不能相互调用--死循环
* 4.在构造方法中调用其他重载的构造方法,必须方法第一行
* 5.在静态方法中无法使用this
*/
package com.qianfeng.test;
/*
* 静态代码块儿:随着类的加载而加载,在整个程序的过程中只执行一次.执行顺序优先有main
* 构成: static+{代码}
* 构造代码块儿:随着对象的加载而加载,每次创建对象都会执行一次,执行顺序优先于构造方法
* 构成:{代码}
*/
//实例
public class Demo8 {
static {
System.out.print("a");
}
public static void main(String[] args) {
System.out.print("g");
Cat cat = new Cat();
Cat cat1 = new Cat();
cat.eat();
System.out.println();
//验证构造代码块儿是随着对象的加载而加载
Pig.play();//打印的是oplay
}
static {
System.out.print("b");
}
}
class Cat{
static {
System.out.print("e");
}
{
System.out.print("f");
}
public Cat() {
System.out.print("c");
}
public void eat(){
System.out.print("d");
}
}
class Pig{
static {
System.out.print("o");
}
{
System.out.println("k");
}
public static void play(){
System.out.println("play");
}
}