欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java类成员默认的可访问性是什么?你猜

程序员文章站 2022-06-10 16:05:56
先看下面TestModel: 运行下面测试代码,你猜结果会是什么? 结果是: 结论: 一个类的属性和方法,在不加访问修饰符的情况下,可访问性默认是public,————可不是private哦! 所以,在定义类成员时,注意使用修饰符来限定可访问性。 按照编程规范,将属性定义成private的,即定义为 ......

先看下面testmodel:

import org.apache.commons.collections4.bidimap;
import org.apache.commons.collections4.bidimap.dualhashbidimap;

public class testmodel {
    bidimap bidimap = new dualhashbidimap();

    bidimap getbidimap() {
        bidimap.put("testkey","testvalue");
        return bidimap;
    }
}

 

运行下面测试代码,你猜结果会是什么?

    @test
    public void test() {
        testmodel testmodel = new testmodel();
        system.out.println(testmodel.bidimap.size());
        testmodel.getbidimap();
        system.out.println(testmodel.getbidimap().getkey("testvalue"));
    }

 

结果是:

0
testkey

 

结论:

一个类的属性和方法,在不加访问修饰符的情况下,可访问性默认是public,————可不是private哦!    所以,在定义类成员时,注意使用修饰符来限定可访问性。

按照编程规范,将属性定义成private的,即定义为私有字段,然后通过get/set方法将其暴露出去。

诸如上面的testmodel,定义的就不好,可读性差,容易给人造成误解。bidimap和getbidimap()都能被外界访问,那么别人在使用testmodel时就会模棱两可。