zoukankan      html  css  js  c++  java
  • 静态代码块和this


    /*

    静态代码块。
    随着类的加载而执行。而且只执行一次。

    作用:
    用于给类进行初始化。

    */
    class StaticCode
    {
    static int num ;
    static
    {
    num = 10;
    // num *=3;
    System.out.println("hahahah");
    }
    StaticCode(){}

    static void show()
    {
    System.out.println(num);
    }
    }

    class Person
    {
    private String name;

    {//构造代码块。可以给所有对象进行初始化的。

    System.out.println("constructor code ");
    // cry();
    }

    static
    {
    System.out.println("static code");
    }

    Person()//是给对应的对象进行针对性的初始化。
    {
    name = "baby";
    // cry();
    }
    Person(String name)
    {
    this.name = name;
    // cry();
    }
    public void cry()
    {
    System.out.println("哇哇");

    }

    public void speak()
    {
    System.out.println("name:"+name);
    }

    static void show()
    {
    System.out.println("show run");
    }
    }


    class StaticCodeDemo
    {
    static
    {
    // System.out.println("a");
    }
    public static void main(String[] args)
    {

    // Person p = null;
    // p.speak();

    // Person.show();
    // Person p1 = new Person();
    // p1.speak();
    // Person p2 = new Person("旺财");
    // p2.speak();
    // new Person();

    // new StaticCode().show();
    // new StaticCode().show();
    // StaticCode.show();
    // System.out.println("b");
    }
    }

    *
    当成员变量和局部变量重名,可以用关键字this来区分。

    this : 代表对象。代表哪个对象呢?当前对象。
    this就是所在函数所属对象的引用。
    简单说:哪个对象调用了this所在的函数,this就代表哪个对象。

    this也可以用于在构造函数中调用其他构造函数。
    注意:只能定义在构造函数的第一行。因为初始化动作要先执行。
    */

    class Person
    {
    private String name;
    private int age;
    Person()
    {
    name = "baby";
    age = 1;
    System.out.println("person run");
    }
    Person(String name)
    {
    this();
    this.name = name;
    }
    Person(String name,int age)
    {
    this.name = name;
    this.age = age;
    }
    public void speak()
    {
    System.out.println(this.name+":"+this.age);
    }

    /*
    判断是否是同龄人。
    */
    public boolean compare(Person p)
    {
    /*
    if(this.age==p.age)
    return true;
    else
    return false;
    */
    return this.age==p.age;
    }

    }

    class ThisDemo
    {
    public static void main(String[] args)
    {

    Person p1 = new Person("aa",30);//
    Person p2 = new Person("zz",12);

    p2.compare(p1);
    // new Person();
    // Person p = new Person("旺财",30);
    // p.speak();
    // Person p1 = new Person("小强");
    // p1.speak();
    }
    }

  • 相关阅读:
    SpringBoot简单项目学习笔记08(servlet的内置容器的切换(tomcat、jetty、undertow))
    读《大家看的设计书(第三版)》有感
    百度比赛任务二收获
    百度前端任务一学习的知识
    学习git的内容
    codeforces #588 ABCD
    codeforces #597 div2 ABCD !F
    codeforces #589 div2 ABCD E待补
    codeforces #590 div3 BCDF E待补
    codeforces #591 div2 ABCD
  • 原文地址:https://www.cnblogs.com/smuxiaolei/p/7473153.html
Copyright © 2011-2022 走看看