1. 1 不可撤销
  2. 2 小年兽 程嘉敏
  3. 3 手放开 李圣杰
  4. 4 迷人的危险3(翻自 dance flow) FAFA
  5. 5 山楂树之恋 程佳佳
  6. 6 summertime cinnamons / evening cinema
  7. 7 不谓侠(Cover 萧忆情Alex) CRITTY
  8. 8 神武醉相思(翻自 优我女团) 双笙
  9. 9 空山新雨后 音阙诗听 / 锦零
  10. 10 Wonderful U (Demo Version) AGA
  11. 11 广寒宫 丸子呦
  12. 12 陪我看日出 回音哥
  13. 13 春夏秋冬的你 王宇良
  14. 14 世界が终わるまでは… WANDS
  15. 15 多想在平庸的生活拥抱你 隔壁老樊
  16. 16 千禧 徐秉龙
  17. 17 我的一个道姑朋友 双笙
  18. 18 大鱼  (Cover 周深) 双笙
  19. 19 霜雪千年(Cover 洛天依 / 乐正绫) 双笙 / 封茗囧菌
  20. 20 云烟成雨(翻自 房东的猫) 周玥
  21. 21 情深深雨濛濛 杨胖雨
  22. 22 Five Hundred Miles Justin Timberlake / Carey Mulligan / Stark Sands
  23. 23 斑马斑马 房东的猫
  24. 24 See You Again Wiz Khalifa / Charlie Puth
  25. 25 Faded Alan Walker / Iselin Solheim
  26. 26 Natural J.Fla
  27. 27 New Soul Vox Angeli
  28. 28 ハレハレヤ(朗朗晴天)(翻自 v flower) 猫瑾
  29. 29 像鱼 王贰浪
  30. 30 Bye Bye Bye Lovestoned
  31. 31 Blame You 眠 / Lopu$
  32. 32 Believer J.Fla
  33. 33 书信 戴羽彤
  34. 34 柴 鱼 の c a l l i n g【已售】 幸子小姐拜托了
  35. 35 夜空中最亮的星(翻自 逃跑计划) 戴羽彤
  36. 36 慢慢喜欢你 LIve版(翻自 莫文蔚) 戴羽彤
  37. 37 病变(翻自 cubi) 戴羽彤
  38. 38 那女孩对我说 (完整版) Uu
  39. 39 绿色 陈雪凝
  40. 40 月牙湾 LIve版(翻自 F.I.R.) 戴羽彤
夜空中最亮的星(翻自 逃跑计划) - 戴羽彤
00:00 / 04:10

夜空中最亮的星 能否听清

那仰望的人 心底的孤独和叹息

夜空中最亮的星 能否记起

那曾与我同行 消失在风里的身影

我祈祷拥有一颗透明的心灵

和会流泪的眼睛

给我再去相信的勇气

越过谎言去拥抱你

每当我找不到存在的意义

每当我迷失在黑夜里

噢喔喔 夜空中最亮的星

请指引我靠近你

夜空中最亮的星 是否知道

那曾与我同行的身影 如今在哪里

夜空中最亮的星 是否在意

是等太阳先升起 还是意外先来临

我宁愿所有痛苦都留在心底

也不愿忘记你的眼睛

哦 给我再去相信的勇气

哦 越过谎言去拥抱你

每当我找不到存在的意义

每当我迷失在黑夜里

噢喔喔 夜空中最亮的星

请照亮我向前行 哒~

我祈祷拥有一颗透明的心灵

和会流泪的眼睛 哦

给我再去相信的勇气

哦 越过谎言去拥抱你

每当我找不到存在的意义

每当我迷失在黑夜里

噢喔喔 夜空中最亮的星

请照亮我向前行

static及静态方法

一、static

  • 1、方法声明中用关键字static修饰的均为类方法或者静态方法,不用static修饰的方法称为实例方法;

  • 2、实例方法可以调用该类中的实例方法或者类方法,类方法只能调用该类的类方法或者静态方法,不能调用实例方法(静态方法只能调用静态方法,不能调用非静态方法)

  • 3、在成员变量前加static关键字,可以将其生命为静态成员变量;

  • 4、如果类中成员变量被定义为静态,那么不论有多少个对象,静态成员变量只有一份拷贝,即所有对象共享该成员变量;

  • 5、静态变量的作用域只在类内部,但其生命周期却贯穿整个程序;

  • 6、静态成员方法只能对类的静态成员变量进行操作;静态方法,没有this引用。

  • 7、 为什么静态成员、静态方法中不能用this和super关键字?

    • 1、在静态方法中是不能使用this预定义对象引用的,即使其后边所操作的也是静态成员也不行.
      因为this代表的是调用这个函数的对象的引用,而静态方法是属于类的,不属于对象,静态方法成功加载后,对象还不一定存在
    • 2、 在问题之前先讲super的用法:
      • 1.super的用法跟this类似,this代表对本类对象的引用,指向本类已经创建的对象;而super代表对父类对象的引用,指向父类对象;
      • 2.静态优先于对象存在;
      • 3.由上面的1.和2.知:
        因为静态优先于对象存在,所以方法被静态修饰之后方法先存在,而方法里面要用到super指向的父类对象,但是所需的父类引用对象晚于该方法出现,也就是super所指向的对象没有,当然就会出错。

        综上,静态方法中不可以出现super关键字。
    • 3、首先你要明白对象和类的区别。
      • this和super是属于对象范畴的东西,而静态方法是属于类范畴的东西
      • 所有的成员方法都有一个默认的的参数this(即使是无参的方法),只要是成员方法,编译器就会给你加上this这个参数如:
      • Class A中void method1(){}实际上是这样的--------> void method1(A this)

      • void method2(int x){}实际上是这样的--------> void method2(A this, intx)
        而静态方法与对象无关,根本不能把对象的引用传到方法中,所以不能用this

    • 4、在一个类中定义一个方法为static,则为静态方法,那就是说,无需本类的对象即可调用此方法,调用一个静态方法就是“类名.方法名”

既然"无需本类的对象即可调用静态方法",而this和super关键字都是用于本类对象的-----调用静态方法无需本类的对象这句话很清楚表明:静态方法中不能用this和super关键字

    • 5、静态方法是存放在内存中的数据段里,this和super调用的是堆空间里的应用对象不能调用数据段区域里的数据,因此静态方法中不能用this和super关键字
    • 6、静态方法和静态类不属于单个对象,而是类的所有对象共享使用
      而this代表当前对象
    • 7、东西只属于类,不属于任何对象,所以不能用THIS和SUPER。

  • 8、静态属性和静态方法只是可以继承没有表现出多态性;

    • 因为静态方法和静态属性没有采用动态绑定。具体表现就是, 将子类实例向上转型则会调用到基类中的静态方法和属性,不转型就调用子类自身的静态方法和属性。
    • 编译器不推荐通过实例去调用静态方法和属性,因为这种调用方式容易造成混淆。
    • 实际上,在Java的规范中,Java对于类的方法和属性采用了两种完全不同的处理机制:对于方法,使用重载机制实现了多态性;对于属性,使用的是同名属性隐藏机制。所谓的同名属性隐藏机制是指:
      • 在具有父子关系的两个类中,子类中相同名字的属性会使得从父类中继承过来的同名属性变得不可见,不管类型是否一致,名称一致的两个属性就是同名属性。
    • 在子类中,无法简单地通过属性名称来获取父类中的属性,而是必须通过父类名称加属性名称(super.变量名)的方法才可以访问父类中的该属性。一般而言,为了代码容易阅读,极其不建议在父类和子类中使用同名属性。
package day008;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class Demo {
    public static void main(String[] args) {
        Collection<?>[] collections = { new HashSet<String>(),
                new ArrayList<String>(), new HashMap<String, String>().values() };
        Super subToSuper = new Sub();
        for (Collection<?> collection : collections) {
            System.out.println(subToSuper.getType(collection));
        }
    }

    abstract static class Super {
        public static String getType(Collection<?> collection) {
            return "Super:collection";
        }

        public static String getType(List<?> list) {
            return "Super:list";
        }

        public String getType(ArrayList<?> list) {
            return "Super:arrayList";
        }

        public static String getType(Set<?> set) {
            return "Super:set";
        }

        public String getType(HashSet<?> set) {
            return "Super:hashSet";
        }
    }

    static class Sub extends Super {
        public static String getType(Collection<?> collection) {
            return "Sub";
        }
    }
}

/**输出结果:
 *Super:collection
 *Super:collection
 *Super:collection
 *

  • 9、静态方法可以通过类名.方法名调用;

  • 10、Java中静态变量只能在类主体中定义,不能在方法中定义。 静态变量属于类所有而不属于方法。

posted @ 2018-04-30 20:01  云中志  阅读(1062)  评论(0编辑  收藏  举报