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();
    }
    }

  • 相关阅读:
    .NET Remoting 应用实例
    EXT.NET 使用总结(3)--动态图表
    2013,2014
    TreeMap put 操作分析
    C#排序算法小结
    高性能的JavaScript--数据访问(1)
    javascript生成对象的三种方法
    Android开发中经常使用的Content-Type简介
    git diff提示filemode发生改变(old mode 100644、new mode 10075)
    UIWebView的使用
  • 原文地址:https://www.cnblogs.com/smuxiaolei/p/7473153.html
Copyright © 2011-2022 走看看