美文网首页
关于区分类变量、类方法、实例变量、实例方法和默认值

关于区分类变量、类方法、实例变量、实例方法和默认值

作者: exmexm | 来源:发表于2017-05-27 22:46 被阅读0次
一、区分类变量、类方法、实例变量、实例方法

1、成员变量和成员方法
首先成员变量和成员方法是范围最大的定义:即成员变量包含实例变量和类变量。
成员方法包含类方法和实例方法。

2、类方法和实例方法
类方法:就是类里面有static修饰的成员方法。类方法可以直接调用类变量和类方法。但是不能直接调用实例方法和实例变量。而且不能使用this关键字,没有实例存在,不知道引用哪一个实例。
实例方法就是没有static修饰的成员方法。实例方法可以直接访问实例变量和直接调用实例方法;实例方法虽然可以直接调用类变量和类方法,但是不被建议。

3、类变量和实例变量
类变量:
是不用新建实例,直接通过类调用的变量。特点就是有static修饰。也叫静态变量。一般被静态方法(类方法)调用。
实例变量:
是新建了实例后才能够使用的变量。可以直接被实例方法调用。
两者的区别是:
对于类变量,系统为类变量分配一次存储空间,所有实例对象共享一个类变量。
实例变量则是在类实例化后,系统为其创建的一个类的实例变量的拷贝,即一个实例拥有一个实例变量。


二、什么时候有默认值

一般来说非final修饰的成员变量在声明时没有赋值时,系统会给非final修饰的成员变量添加初始值。
final修饰的成员变量在声明时没有初始化值,会报错。
所有的局部变量在使用前都要赋值。
代码如下

public class Test_init {
    public float f;
    public long lo;
    public char c;
    public boolean b;
    public static int i;
    //public static final int k;
    
    public Test_init(){
        System.out.println("float:" + f + ",long:" + lo+ " ");
        System.out.println("char:" + c + ",boolean:" + b);
        System.out.println("static:" + i);
    }
    public static void main(String[] args) {
        int i;
        i = 10;
        Test_init t = new Test_init();
        System.out.println("局部:" + i);
    }

}

运行结果如下:

图片.png

另外在牛客那里做题有一道题可以重新分析一下

        System.out.println(b);```


`boolean b = true?false:true==true?false:true`
这句话可以看成
`boolean b = true?false:(true==true?false:true)`
由于?:的优先级比=高,且与操作的结合性是从右到左,但是运算是从左至右的,故输出FALSE

![图片.png](https://img.haomeiwen.com/i3934058/3be5a1d89490875c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

相关文章

  • 关于区分类变量、类方法、实例变量、实例方法和默认值

    一、区分类变量、类方法、实例变量、实例方法 1、成员变量和成员方法首先成员变量和成员方法是范围最大的定义:即成员变...

  • 23:python中的类变量、实例变量、类方法、静态方法和实例方

    1、类变量和实例变量 类变量:定义在类里面,实例方法方法外面的变量 实例变量:定义在实例方法里面的变量,常用:se...

  • runtime(一)

    总结:Classget 类名,父类;实例变量;属性;实例方法,类方法,方法实现;Copy 实例变量列表;属性列...

  • 类方法和实例方法的区别

    类方法和实例方法 1、类方法是属于整个类,而不属于某个对象。2、类方法只能访问类成员变量,不能访问实例变量,而实例...

  • Ruby元编程

    类 方法 代码块 类宏 Eval方法 实例变量、方法、类 实例变量(Instance Variables)是当你使...

  • Java多线程中变量访问问题

    类变量(类里面static修饰的变量)保存在“方法区”实例变量(类里面的普通变量)保存在“堆”局部变量(方法里声明...

  • Java se - 实例方法,类方法

    定义 实例方法:可以对当前对象的实例变量进行操作,也可以对类变量进行操作,由实例对象调用。类方法:不能访问实例变量...

  • category 和 extension

    由分类结构可知,分类可添加实例方法,类方法,遵守协议,不可添加实例变量 category的主要作用: 1、 为已经...

  • category底层原理

    category原码 通过查看源码可以看出,给分类可以添加实例方法,类方法,协议,属性(无法添加实例变量)。 添加...

  • ruby中实例变量、类变量、实例方法、类方法区别

    实例变量和类变量 1、实例变量可以理解为类属性,能被类方法访问,不能被实例方法调用不能被继承,子类中赋值不会影响父...

网友评论

      本文标题:关于区分类变量、类方法、实例变量、实例方法和默认值

      本文链接:https://www.haomeiwen.com/subject/kcvftxtx.html