新手入门, 看懂面向对象中this和static作用

this关键字(用法):this指正在使用的那个对象

  1. this修饰属性//当属性名和形参名或局部变量名重名时, 会有就近原则, 这时就需要用this指代属性  (大部分情况this都可省略不写.)
  2. this修饰方法: 例如调用eat方法, eat();或this.eat( );  在同一个类中调用方法, this.可以省略不写
  3. this修饰构造器: 构造器调用要么在创建对象时被虚拟机自动调用, 要么在构造器中调用构造器使用this(形参1,形参2); //括号内填入的是重载构造器的形参.

不能在成员方法中通过this调用构造方法

  1. 使用this调用构造方法的语句必须位于第一行.

 

ststic关键字可以修饰属性, 方法, 代码块, 内部类

被static修饰的内容共通性: 会被所有该类的对象共享静态域

  1. static修饰属性: 会在创建对象加载类时一并载入方法区中的静态域里, 这个载入早于创建对象存在
    1. 两种访问方式 类名和对象: 对象名.属性名   类名.属性名(推荐)
    2. 静态属性(叫类变量), 非静态属性(叫实例变量,就是没static修饰的)
    3. 使用思维: 当变量被反复赋予相同值时用static让其成为共享属性/或某些值需要被共享时则用ststic修饰
  2. static修饰方法//没staic修饰的方法叫实例方法
    1. 方法常见修饰符为public和static, 它们之间没有先后顺序是并列的, static public void main( );也是可以的.
    2. 什么时候不能用static:  当一个行为执行过程中需要对象参与,则不能用static,要定义为实例方法
    3. 作用: 使方法实现类名调用(正常是要创建对象才能调用方法)
    4. 静态方法不能访问非静态属性和非静态方法//原理: 因为静态属性先于对象被加载, 而静态方法可以不用依托对象调用. 如果在未创建对象之前-, 静态方法就调用它的非静态属性, 由于对象还未创建所以会调用失败(非静态属性只能被对象调用).
    5. 静态方法不能使用this//原因同上, 可能存在对象还未创建的情况
    6. static静态方法可以通过类名和对象访问, 非静态方法只能用对象访问
    7. 在同一类中静态方法能被直接调用: 示例 在静态b方法调用静态c
static void b(){

System.out.println("b方法被执行了");

c(); } //直接写方法名既可以调用

static void c(){

System.out.println("c方法被执行了");

}

 

 

 

  • 9
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值