黑马程序员技术交流社区

标题: java中常见的关键字this、static等 [打印本页]

作者: 邱石    时间: 2015-6-16 16:19
标题: java中常见的关键字this、static等
类中的关键字
1:static关键字(理解)
        (1)静态的意思。可以修饰成员变量和成员方法。
        (2)静态的特点:
                A:随着类的加载而加载
                B:优先于对象存在
                C:static修饰的成员是被类的所有对象共享
                        这其实也是我们判断该不该使用静态的依据。
                        举例:饮水机(用静态修饰)和水杯(不能用静态修饰)
                D:可以通过类名调用
                        既可以通过对象名调用,也可以通过类名调用,建议通过类名调用。
        (3)静态的内存图
                静态的内容在方法区的静态区
        (4)静态的注意事项;
                A:在静态方法中没有this对象(因为静态是随着类的加载而加载,this是随着对象的创建而存在  )
                B:静态只能访问静态,非静态可以访问静态或者非静态。(代码测试过)
        (5)静态变量和成员变量的区别
                A:所属不同
                        静态变量:属于类,类变量
                        成员变量:属于对象,对象变量,实例变量
                B:内存位置不同
                        静态变量:方法区的静态区
                        成员变量:堆内存
                C:生命周期不同
                        静态变量:静态变量是随着类的加载而加载,随着类的消失而消失
                        成员变量:成员变量是随着对象的创建而存在,随着对象的消失而消失
                D:调用不同
                        静态变量:可以通过对象名调用,也可以通过类名调用
                        成员变量:只能通过对象名调用
2:private关键字(掌握)
        (1)私有的意义,是一个权限修饰符。可以修饰成员变量和成员方法
        (2)特点:
                被private修饰的后的成员变量或者方法,只能在本类中被访问
        (3)封装和private的应用:
                以后再写一个类的时候:
                        把所有的成员变量给private了
                        提供对应的getXxx()/setXxx()方法

3:this关键字(掌握)
        (1)代表当前类的对象引用,简单说就是this代表当前类的一个对象。
                记住:哪个对象调用方法,该方法内部的this就代表那个对象
        (2)this的应用场景:
                A:解决了局部变量会隐藏成员变量的问题
                B:其实this还有其他的应用,明天讲解。

        (6)main方法是静态的
                public:权限最大
                static:静态的。不用创建对象调用
                void:返回值给jvm没有意义
                main:就是一个常见的名称,大多数语言都是以main作为入口的。
                String[] args:字符串数组,可以接收数据,提高程序的灵活性
                        这是早期为了接收键盘录入的数据的。格式如下。
                        格式:java 类名 hello world java
                                  java MainDemo 10 20 30
4:final关键字(掌握)
        (1)是最终的意思,可以修饰类,方法,变量。
        (2)特点:
                A:它修饰的类,不能被继承。
                B:它修饰的方法,不能被重写(覆盖,复写)。
                C:它修饰的变量,是一个常量。
        (3)面试相关:
                A:final修饰 局部变量
                        a:基本类型 值不能发生改变 final int x=10;
                        b:引用类型 地址值不能发生改变,但是对象的内容是可以改变的.
                        final Student s=new Student();
                        s.age=100;
                        如教室编号,302教室一旦被final确定,就没法改变,但是教室里的学生(值)是可以改变的。
                B:初始化时机
                        a:只能初始化一次。
                        b:常见的给值
                                定义的时候。(推荐)在构造方法完毕前,对常量进行初始化。
                                构造方法中。


作者: tinlen    时间: 2015-6-16 16:20
总结得不错.
作者: 邱石    时间: 2015-6-16 16:24
tinlen 发表于 2015-6-16 16:20
总结得不错.

谢谢,共同进步
作者: 爱李萝卜    时间: 2015-6-16 17:04
很好的总结,加油
作者: Happe_Sun    时间: 2015-6-16 19:14
look yi look
作者: xiaodong    时间: 2015-6-16 21:11
谢谢分享!!!
作者: q19871127    时间: 2015-6-16 21:44
支持下 总结的好
作者: cyd1058    时间: 2015-6-16 21:52
这是复制粘贴老师上课讲的内容吗?
作者: 十五号的人生    时间: 2015-6-16 22:01
可以借鉴一下
作者: yywishp    时间: 2015-6-16 22:27
感谢分享
作者: keto    时间: 2015-6-16 22:34
学习了。谢谢分享。。
作者: q757571446    时间: 2015-6-16 22:39
总结的很好,赞一个
作者: zhenxing133    时间: 2015-6-16 22:40
感谢分享。。
作者: 邱石    时间: 2015-6-17 05:56
zhenxing133 发表于 2015-6-16 22:40
感谢分享。。

共同进步。
作者: 1958078929    时间: 2015-6-17 06:38
谢谢总结
作者: 杨凯瑞    时间: 2015-6-17 08:25
老师总结的内容,   很好
作者: 邱石    时间: 2015-6-17 10:36
杨凯瑞 发表于 2015-6-17 08:25
老师总结的内容,   很好

谢谢,共同进步
作者: 十字天堂    时间: 2015-6-17 12:16
围观学习
作者: 风一样的少年    时间: 2015-6-17 12:55
很好,支持
作者: psaa    时间: 2015-6-17 13:06
你打得不错,很好。。
作者: 王冲6060    时间: 2015-6-17 19:39
感谢分享!
作者: zhaopy    时间: 2015-6-17 20:13
学习了,楼主辛苦!!!
作者: 邱石    时间: 2015-6-18 06:26
王冲6060 发表于 2015-6-17 19:39
感谢分享!

共同进步
作者: 杨凯瑞    时间: 2015-11-14 21:26
cyd1058 发表于 2015-6-16 21:52
这是复制粘贴老师上课讲的内容吗?

这个真的不是!!
作者: 猪潴左右卫门    时间: 2015-11-20 11:55
总结很详细,受教了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2