是否有解释java变量继承和构造函数代码流的信息图?
是否有解释java变量继承和构造函数代码流的信息图是否有解释java变量继承和构造函数代码流的信息图?,java,class,inheritance,constructor,polymorphism,Java,Class,Inheritance,Constructor,Polymorphism,是否有解释java变量继承和构造函数代码流的信息图 我在可视化继承和类变量如何工作、公共、静态私有默认或其他方面遇到了困难。我建议您使用上述关键字编写代码,然后进行测试 默认值:对包可见 私有:仅对类可见 公众:世界可见 受保护:对包和所有子类可见 来自Oracle的有一个关于继承的部分,应该能够回答您的大多数问题。访问修饰符(public、protected、package)在继承中只起一小部分作用。不能使子类中的函数或变量比超类更难访问(例如,Animal具有public void doSt
我在可视化继承和类变量如何工作、公共、静态私有默认或其他方面遇到了困难。我建议您使用上述关键字编写代码,然后进行测试
public class Magic{
public static int pants;
}
public class MagicPants extends Magic{
public void go(){
System.out.println(pants);
System.out.println(MagicPants.pants);
System.out.println(Magic.pants);
}
public static void main(String argv[]){
Magic.pants = 2;
MagicPants.pants = 1;
new MagicPants().go();
}
}
全部打印1
构造函数的代码流很简单-遵循super()调用。所以我不懂图形 静态意味着变量对于具有相同类的所有对象都是相同的 像 公共变量意味着您可以像我在前面的示例中所做的那样直接更改她:object.variableName=value。 这是危险的,所有人都不应该使用它 私有变量不能直接更改。您需要使用一些getter和setter来完成这项工作。这是编写代码的好方法 事实上,我不知道所有的参数,所以我不向你们描述。但99.9%的时间是私人使用的 受保护的意思是,变量对包和子类开放(第一次私有更容易使用,更安全) 另一个参数可以是final,有了这个参数,变量就不能再改变了。它就像一个常量。静态final参数是一个类常量
如果您需要更多信息,请在前面的回复中解释在哪里可以找到官方来源。这是一个非常简单的示例: 每次创建圆形或方形对象时,也会创建形状对象 关于变量:
-
private
字段不能被任何其他类(包括子类)访问。-
受保护的
字段可由任何子类访问。从链接、抽象类形状的变量x和y拍摄的图片,圆形或方形的每个实例都有这些字段。-
默认值
字段可由同一包中的任何子类和任何类访问(仅在同一包中,子包中的类不具有访问权限)。这通常很有用,在编写自动测试时,您不必为字段声明公共getter。-
public
字段可由任何其他类访问。但是,使用这些字段编写代码不是一种干净的方法,最好使用getter和setter创建私有字段。-
static
关键字指定类拥有的字段,而不是它的实例。这就像有一个字段被类的多个实例共享。如果一个实例更改了这个字段的值,其他每个实例只能读取这个新修改的FWIW-我不认为你会在上面找到一个信息图,你在很大程度上是独立的Java打包和访问修饰符与继承是不同的,静态关键字的类/实例区别也是不同的。每个类可能都有有用的信息图形,但特别是对于构造函数代码流,有一些细微之处(例如实例初始化器代码块和链式构造函数)通过查看工作代码示例可能最能理解哪些内容。这一切都取决于您希望获得的理解程度。他问的是关于信息图形的人!目前为止的答案只是以文本形式解释。(一些链接到的内容中有图片,但它们不是单一的信息图形中心,如果您知道我的意思的话。)不幸的是,我不知道有任何这样的资源在我的头上。
public Class TryVariable{
public static int variable = 2
public static void main(String[] args){
a = new TryVariable()
b = new TryVariable()
system.out.println(a.variable)
system.out.println(b.variable)
// both equals 2
a.variable= 3
system.out.println(a.variable)
system.out.println(b.variable)
// both equals 3, because variable is static.
}