多个成员的单个Java访问修饰符

时间:2014-10-16 01:30:07

标签: java access-modifiers

我认为我几乎完全了解Java的访问修饰符,直到我的一个队友刚刚提交了一些我以前从未见过的代码。

在关注仅两个访问修饰符时,请查看以下代码,

    public class Type {

        private

        int typeID;
        String name;
        String description;

        public

        void setTypeId(int arg)
        {
            typeID=arg;
        }
        int getTypeId()
        {
            return typeID;
        }

        void setName(String arg)
        {
            name=arg;
        }
        String getName()
        {
            return description;
        }

        void setDescription(String arg)
        {
            description=arg;
        }
        String getDescription()
        {
            return description;
        }

    }

我的队友是Java的新手,但是来自C ++背景,这就是为什么我认为他设置了privatepublic访问修饰符之类的原因(这就是他们在头文件中完成的方式C ++)。但这在Java中是否有效。我以前从未在Java中看过这种语法,我在网上找不到任何文档。

如果这是有效的,则表示typeIDnamedescription都是私有的,public下的所有功能实际上都是公开的。或者它是否意味着只有typeID是私有的而setTypeID是私有的(因为它们是两个访问修饰符下的两个成员声明。

2 个答案:

答案 0 :(得分:4)

缺少访问修饰符表示package private

private修饰符适用于typeID字段。单public修饰符适用于setTypeId方法。

在Java中,空格和缩进毫无意义。 (在C ++中无论是afaik都没关系,但在C ++中你有private:,而不仅仅是private。)

换句话说,这个

public class Type {

    private

    int typeID;
    String name;
    String description;

相同
public class Type {

    private int typeID;
    String name;
    String description;

相同
public class Type { private int typeID; String name; String description; //...

答案 1 :(得分:0)

typId属性定义为private,setTypeId定义为public,其他属性和方法默认仅对同一个包的成员(包私有)可见。

在java中,每个指令以';'结尾。终止;

更像你的想法:

 public String name, description;

对于上述说明,这两个属性受到公共'公共'改性剂。

:)