假设我们有public class parent {private string x;private class child {void doSomething(){System.out.println(x);}}
}当然,这是一个简单的例子,但是总的来说,我应该像这样从外部类使用私有变量,还是应该避免这种情况并通过构造函数中的参数将它们传递给内部类?解决方法:功能可能不相同.如果实例变量被重新分配,将它们传递给构造函数将改变功能.具有两个副本使代码更难阅读.
如果实例变量没有变化并且类确实在一起,那可能很好....
1 import java.lang.reflect.Field;2 import java.lang.reflect.InvocationTargetException;3 import java.lang.reflect.Method;4 5 /**6 * Created with IDEA7 * author:foreign8 * Date:2019/9/309 * Time:10:40
10 */
11 public class ReflectionFk {
12 public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {
13 ...
package com.valami;public class Ferrari{private int v = 0;private void alam(){System.out.println("alam");}public Ferrari(){System.out.println(v);}public static void main(String[] args){Ferrari f = new Ferrari();f.v = 5;System.out.println(f.v);}}大家好! 我有一个简单的问题….为什么我可以从main方法到达私有变量?我知道,我在收容班,但这是主要的.我相信主要不是包含它的类的一部分…然后我不会找到私人成员,但...
我正在循环一些数据,创建一个ArrayList< ArrayList< Cell>>每一步.每个Cell类都存储一行和col(以及其他内容).
我的问题是,当我之后调查我的listOfCells时,每个Cell对象都有相同的行(myData的最后一行.这只发生在行中,列应该是它们应该的(也就是说,它们本身是唯一的).可以看出,行正在递增,但是当它正确时,它会更改listOfCells中行的所有值.
我不知道是什么造成了这个.
创建CellCell cell = null;
int row = 0;
int col = 0;
ArrayLi...
我的讲师说如果类有私有变量,当你想通过getter返回那些变量的值时,如果它们的数据类型是原始的,你可以直接返回它们的值,但是如果它们是引用类型,一般规则拇指是你应该几乎总是返回Object.clone().然后我想知道在什么情况下你不需要返回Object.clone()?解决方法:but if they’re of reference types, a general rule of thumb is that you should almost always return Object.clone().不鼓励使用克隆.可能你的意思是创建对象的副本...
假设我有一个Fragment定义如下:public class MyFragment extends Fragment {private static String sample = "";public static void setSample(String s) {sample = s;}
}对于应用程序的生命周期,样本会收集垃圾(是否存在对MyFragment的任何引用 – 我认为这不应该重要)?解决方法:你是对的,MyFragment的实例数无关紧要.
只要加载MyFragment的类加载器处于活动状态,样本变量就会有效地成为GC根.
重要的是要注意变量永远不会被垃圾...
我正在学习编程,虽然我觉得我对编程有很好的了解(多年来一直在编写PHP,Javascript等),但我从未潜入过OOP世界.因此,我要求对我所处的情况作出一般??性回答.我知道??总会有一些例外情况,但我在这种情况下寻找最正确的方法.
好的,所以我有两个课程,Game和GameGraphics. GameGraphics将创建一个Game对象并使用它拥有的所有方法.我们最近了解到一个类的所有变量都应该是私有的,因此GameGraphics通过getter和setter访问Game中的所有变量....
对不起,如果这是另一个愚蠢的愚蠢问题,但我仍然是Java编程语言的新手.
我有3个类:InputClass,PreviewClass和MainClass.
MainClass包含运行程序的主要方法. InputClass包含一个用于输入的私有JTextField和一个用于将文本设置为PreviewClass中的JTextField的JButton. PreviewClass包含一个私有JTextField,用于在InputClass中显示输入的文本.
我怎么能这样做(在PreviewClass中为JTextField赋值)而不创建InputClass的实例,然后使用get...
例:private int x = 4;public TestClass(int x) {this.x = x;
}public TestClass(int x) {setX(x);
}public void setX(int x) {this.x = x;
}第一个构造函数是更好的练习还是第二个?我问这个是因为当我在IntelliJ IDEA中封装我的类时,如果我之前使用过.x = x,则将其更改为setX(int newX);.解决方法:在大多数情况下,这都是个人喜好.如果它的值不依赖于其他变量,我会使用第一个构造函数.但是,setter方法允许在修改变量值之前满足某...
为了给出一些背景知识,我已经学习了大约10个月的java,所以我真的没那么有经验.我最近读过一些关于如何测试私有方法和变量的不良做法.
在完美的世界中,你不应该这样做,因为它暗示了糟糕的设计 – 但是,我正在使用遗留框架,其中大多数方法都是通过反射来调用的,这是糟糕的设计,但无论如何我都无法改变它.请不要回复说“你应该重新设计代码”,因为我无法改变框架的工作方式.
我想测试一个’flow’类以某种方式运行并根据私有变量的状态...