java 23

this 关键字

          ##补充
                 成员变量:类体之中,方法体之外的变量
                                静态变量【static】
                                实例变量【有static】
        
        ##this
        1. this关键字是指当前的对象
            this是 一个引用,是一个变量,this变量中保存了内存地址指向自身,this存储在jvm堆内存Java对象的内部中
            每个对象都有这个this关键
            简单来说,this相当于以一种介质,栈内存中局部变量的地址传递到this关键字中,再传递给对象
            当使用引用名局部变量名)访问这个对象的话,整个过程中出现的this表示引用名(局部变量名)
            this表示当前正在执行这个行为的对象(当前对象)
         (就是谁要去访问那么该对象的局部变量名(对象名)这个this将会变成这个对象名(局部变量名))
         
            this可以出现在实例方法中
            this不能使用在带有static的方法中
            
        2. 没有static关键字的  方法  称为“实例方法”(对象方法)
        3. 没有static关键字的  变量  称为“实例变量”(对象变量)堆内存的对象内部存储
        4. 有static关键字:
                        方法调用的不是对象去调用,是一个类名调用, 执行过程中没有"当前对象"
                        static的方法调用不需要对象,直接使用类名,所以不能使用  this
                        想要访问  带有static关键字的实例变量的步骤:
                               * 创建对象
                               * 通过对象去访问这个变量
                               * 其他的一些步骤
                          * 注意
                                   - 带有static的方法即使采用创建对象的方式去访问,但是,过程中没有使用过创建对象
                                   - 不会出现空指针异常(因为没有用到对象)
       5. 实例方法
                  格式:public void 类名(){
                  }    
                  要想访问,必须的步骤:
                          先创建对象
                          通过引用方式访问 
                          
      6. this什么时候不可以省略?
                用来区分  局部变量   和   实例变量   时候不能省略this
                如:public void setId(int id(这是局部变量)){
                      this.id = id ;(实例变量)
                }
      7.this可以使用在那里:
              * 可以使用在实例方法中,代表当前对象【语法格式:this.】
              * 可以使用在构造方法中,通过当前的构造方法调用其它的构造方法【this.(实参);】
              * this.()只能出现在构造方法中的第一行
              如://有参数的构造方法
                    public Date(int year,int month,int day){
                 this.year = year;
                 this.month = month;
                 this.day = day;
                }      
                 //无参数的构造方法
                 public Date (){
                 this.();//这里直接调用有参数的构造方法。this.()中直接写参数就行了
                 如 this.(year);
                 }    

static关键字

            带static是类级别的方法
            带有static类级别的特征可以进一步提升为      模板    的特征【如:像类一的模板特征】
            不带static是对象级别的

    1. 静态变量,静态变量在类加载的时候就初始化,不需要创建对象,就可以开辟了内存空间
        静态变量存储在方法区当中,访问直接用:类名.属性名;
     2. 什么时候成员变量声明为实例变量呢?
                 * 所有对象都有这个属性,但是这个属性的值会随着对象的变化而变化【不同对象的这个属性值不同】
                 * 比如:对象的特征属性【人的身高】
     3. 什么时候成员变量声明为静态变量呢?
                 * 所有对象都有这个属性,并且所有对象的这个属性值是一样的,建议定义为静态变量,节省内存的使用
                 * 就是在所有对象中都这个特征
                 * 比如【中国人的国籍就是一个固定的属性】
     4. 关于Java中的static关键字:
                * static	修饰的  方法   叫做静态方法 
                * static 修饰的   变量  叫做静态变量
                * 所有static修饰的元素都称为  静态的,都可以用 “类名.” 形式访问
                * 所修饰的元素都是   类级别特征
     5. 语法格式:【静态代码块】
                        static{
                        语法句;
                        };   
                        注意:* 静态代码块在   类加载    的时候,main方法之前,只执行一次
                                   * 静态代码块在一个类中可以编写多个,遵循从上到下的顺序
                                   * 通常静态代码块当完成预备工作,先完成数据的准备工具 ,如:初始化连接池
     6. 方法什么时候定义为静态的方法?
                * 方法描述的是动作,当所有的对象执行这个动作的时候,最终产生的影响是一样的,那么这个动作
                  已经不再是属于某个对象的动作,可以将这个动作提升为模板的动作
                * 静态方法不能直接访问       实例变量和实例方法
                
     7. 总结:
            class 类{【一个类所讲述的内容】
            	静态代码块
            	示例代码快
            	静态变量
            	实例变量【构造方法执行的时候进行初始化】
            	构造方法
            	静态方法
            	实例方法
            }
     8. 大多数方法都定义为  实例方法,一般一个行为或者一个动作在发生的时候,都需要对象的参与
          但是也有例外的,比如:大多数 工具类 【】中的方法是静态方法        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值