Java基础---类变量和实例变量

类变量和实例变量

成员变量:把类内、方法体外的变量称为成员变量。

package com.chen.offer.BiliBili;

/**
 * @author chenshimiao
 * @Email [email protected]
 * @date 2022/2/18 10:27 下午
 *
 * 区分成员变量 实例变量和类变量
 */
public class Clothes {

    //实例变量
    String id;
    //实例变量
    private String colorType;
    //实例变量
    private int size;
    //类变量(静态变量)
    private static String depart;
}

1、Java中成员变量的种类

Java中的成员变量分为两种:
一种是没有static修饰的,这些成员是对象中的成员,称为实例变量
二是有static修饰的,称为类变量(静态变量)

静态变量特点

1、随着类的加载而加载
2、优先于对象存在
3、被所有对象共享
4、可以直接被类名调用

2、类变量和实例变量的区别:

  • 1、存放位置。
    类变量随着类的加载而存储在方法区中。
    实例变量随着对象的建立而存方法堆内存中。
  • 2、生命周期:
    类变量生命周期最长,随着类的消失而消失。
    实例变量生命周期随着对象的消失而消失。

3、Java中对象和实例的关系

实例表示的是对象和类的关系
比如:

Person p = new Person();

new Person()新建了一个Person对象,而p则是一个只想Person对象的引用,这个Person对象就是Person类的一个实例。

Person p = new Person(“a”);

new Person();是一个对象,放在堆(heap)空间。
a属于new Person()里面的一个实例(放在常量池中)。
p属于一个引用,放在栈(stack)空间,要操作对象必须通过引用间接操作。
这个地址是指向new Person()这个对象的。

堆:存放用new产生的数据
栈:存放基本类型的数据和对象的引用,对象本身不存放在栈中,而是存放在堆中

4、题目

1、下列说法正确的是()

  • A、在类方法中可用this来调用本类的类方法
  • B、在类方法中调用本类的类方法时可以直接调用
  • C、在类方法中只能调用本类中的类方法
  • D、在类方法中绝对不能调用实例方法

正确答案:B
解析: 类方法指用static修饰的方法。普通方法也叫对象方法。A、this指的是当前对象,类方法依附于类而不是对象。C、类方法中也可以调用其他的类方法。同时可以通过创建对象来调用普通方法。D、类方法中可以创建对象,所以可以调用实例方法。
Java基础---类变量和实例变量_第1张图片

你可能感兴趣的:(Java基础,Java,java)