类和对象(static,this关键字)

  • 类是一类具有相同属性和行为的对象的集合,是抽象概念(模板/蓝图)
  • 对象所具备的共同属性和行为都定义在类之中

对象

  • 类的一个具体实例,有了对象之后,成员属性才有具体值
  • 有了类才能有对象
  • 类名称 引用名称 = new 类名称(参数);
  • 成员变量都在对象的堆内存中存储

构造方法

  • 和类名称相同,没有返回值的特殊成员方法
  • 构造方法是为了对象产生而存在的,构造方法是为了对象进行成员变量的初始化操作
  • 构造方法若在类中没有定义,编译器会生成默认的无参构造,一旦在类中自己提供了构造方法(无论是否有参),则编译器不再产生默认的无参构造!
  • 若类中只提供了有参构造Person(String name){} Person per = new Person();//一定出错。当前类中没有无参构造
  • 构造方法重载,参数的个数不同(构造方法就是为了成员变量初始化),不同参数的构造方法表示是实例化的变量可能不同
public class Person {
    public String name;
    public String sex;
    public int age;
}

Person() => 所有成员变量都是默认值
Person(String name) => 只给name属性从外部赋值
Person(String name,int age) => 给 name 和 age 属性从外部赋值

this关键字

  1. this修饰属性,表示直接从当前类中寻找同名变量(this.属性名称)
  2. this修饰方法
    2.1 修饰成员方法语法: this.方法名称(参数);
    2.2 修饰构造方法语法: this(构造方法参数);

修饰构造方法语法: this(构造方法参数);

  • this调用构造方法只能在构造方法中调用(只有构造方法之间可以相互调用,不能在任何其他方法中调用构造方法)
  • 当在构造方法中通过this来调用其他构造方法,这个调用必须写在第一行!!!
  • 构造方法之间的相互调用不能成环~~

static

与具体对象无关,和一个类本身相关的内容!!

  • static 修饰属性,则该属性为静态变量,直接通过类名称来调用,存储在JVM的方法区,该类的所有对象共享此变量!!!
  • 在成员变量前,使用static修饰时,该变量就成为了类属性,和具体对象无关,直接通过类来访问,该类所有对象共享此变量(只要有一个对象改了该属性值,对其他对象都是可见的
  • static修饰的方法称为类方法/静态方法,和具体对象无关,通过类名称直接访问(一般工具/公用方法都设置为静态方法,直接通过类名称来访问,不需要产生对象)
  • static修饰的属性/方法都称为类的静态域 静态域没有该类对象就能访问,通过类名称来访问
  • 在类中,不加static关键字定义的属性或方法称为成员域(必须有对象才能访问)
  • static不能修饰一个类,但可以修饰内部类
关于静态变量的说明:
1.static变量只存在于类之中,方法中千万不能定义静态变量!!!
2.静态属性直接通过类名称来访问(推荐的),没有任何该类对象,这个属性也是存在的
3.关于静态变量的存储在JVM的方法区,所有该类对象共享(当类加载到JVM内存之中,静态变量就会在方法区初始化并存储)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值