构造方法与代码块

*
 * 构造方法:调用时候的构成:类名+()
 * 作用:对对象的属性进行初始化,如果我们不自己创建构造方法,系统会调用默认的无参构造方法.
 * 
 * 创建自己的构造方法:
 * 分类:
 * 无参的构造方法:会将成员变量初始化成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");
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值