我认为我几乎完全了解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 ++背景,这就是为什么我认为他设置了private
和public
访问修饰符之类的原因(这就是他们在头文件中完成的方式C ++)。但这在Java中是否有效。我以前从未在Java中看过这种语法,我在网上找不到任何文档。
如果这是有效的,则表示typeID
,name
和description
都是私有的,public
下的所有功能实际上都是公开的。或者它是否意味着只有typeID
是私有的而setTypeID
是私有的(因为它们是两个访问修饰符下的两个成员声明。
答案 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;
对于上述说明,这两个属性受到公共'公共'改性剂。
:)