我对 Java OO 编程比较陌生,并且已经回顾了与此类似的问题,尽管它们似乎没有直接回答我的问题。
基本上,我知道如果类中的数据成员被声明为private,那么它只能从同一个类中访问。
我的讲师总是建议所有属性都应声明为私有 -这是为什么?
现在我熟悉使用 GET 方法,我的问题是,是否可以通过从另一个类调用 PUBLIC“get”方法(返回上述属性)来在其自己的类之外访问私有属性?
例如:
public class Class()
{
private int number = 0;
public Class()
{
}
public int getNumber()
{
return number;
}
}
Run Code Online (Sandbox Code Playgroud)
然后来自另一个班级:
public class Class2()
{
Class class = new Class();
public void showNumber()
{
System.out.print(class.getNumber());
}
}
Run Code Online (Sandbox Code Playgroud)
第二个代码块是否允许 Class2 内的showInt()中的方法实际访问 Class 的私有属性?
我想我真的很难决定是否应该将任何属性或方法声明为公共或私有。
是否有任何应该遵循的特定经验法则?
感谢回复者提供的任何帮助。
亲切的问候
我正在寻找一种方法,给出2个浮点数A和B返回具有较低绝对值的值(A或B).
最初我试过了
Math.min(Math.abs(A),Math.abs(B));
Run Code Online (Sandbox Code Playgroud)
但它不正确,因为例如(-9,-2)返回+2并且我正在寻找的返回值是-2.
是否有一些原生/内置?
我想使用excel vba获取树视图.我有很多String喜欢这个
/folderOne/fileOne
/folderTwo/fileThree
/folderOne/fileTwo
/folderThree/fileFour
/folderTwo/subFolderTwo
/folderThree/subFolderThree/fileFive
Run Code Online (Sandbox Code Playgroud)
我想用vba在excel表中制作树形图.我的要求是
folderOne
L fileOne
L fileTwo
folderTwo
L fileThree
folderThree
L fileFour
subFolderThree
L fileFive
Run Code Online (Sandbox Code Playgroud)
那么我应该如何定义呢?请与我分享一些想法或链接.我对vba很新.
我有以下整数列表
List<Integer> arrayList = new ArrayList<Integer>();
for (int i = 0; i < 7; i++) {
arrayList.add(i);
}
Run Code Online (Sandbox Code Playgroud)
所以列表就像这样[0,1,2,3,4,5,6].我的情景是
如果我给value = 5作为参数,那么我想像这样拆分5个子列表
[0,5], [1,6] , [2], [3], [4]
Run Code Online (Sandbox Code Playgroud)
如果我给value = 4作为参数,那么我想像这样拆分4个子列表
[0,4], [1,5], [2,6] , [3]
Run Code Online (Sandbox Code Playgroud)
如果我给value = 3作为参数,那么我想像这样拆分3个子列表
[0,3,6], [1,4], [2,5]
Run Code Online (Sandbox Code Playgroud)
我已经测试了以下功能,但这不是我的需要.
public List<List<Integer>> chopped(List<Integer> list, final int splitCount) {
List<List<Integer>> parts = new ArrayList<List<Integer>>();
final int N = list.size();
for (int i = 0; i < N; i += splitCount) {
parts.add(new ArrayList<Notification>(list.subList(i, Math.min(N, i + splitCount))));
} …Run Code Online (Sandbox Code Playgroud) 哪种方式最好分配java变量?有什么区别?看到这个;
public class Test {
private String testString;
//getter & setter here.
public void testMethodOne() {
this.testString = "Hello World!";
}
public void testMethodTwo() {
testString = "Hello World!";
}
public void testMethodThree() {
setTestString("Hello World!");
}
}
Run Code Online (Sandbox Code Playgroud)
哪个是最好的, this.testString ="xxx"或testString ="xxx"或setTestString("xxx")?
我有一个h:outputLink打开新的JSF页面并发送h:param.
<h:outputLink id="lnkHidden" action="#{HistoryLinkController.linkValue("test")}" value="HistoryLink.xhtml" style="display:none">
<f:param name="id" value="#{item.aSessionID}" />
</h:outputLink>
Run Code Online (Sandbox Code Playgroud)
当我点击它以将值发送到第二个托管bean时,我想要.我试图实现它action="#{HistoryLinkController.linkValue("test")}"但我得到错误.我可以用于此目的的任何属性吗?
我是数据加密的新手.我使用数据加密,主要是md5和SHA算法.您认为哪种技术最适合数据存储/安全?为什么?
我试过java.util.IdentityHashMap,看
public class IdentityHashMapTest{
public static void main(String args[]) {
Map<String, String> m = new IdentityHashMap<String, String>();
m.put("John", "Doe");
m.put("John", "Paul");
System.out.println(m.size());
}
}
Run Code Online (Sandbox Code Playgroud)
根据Java API说,
此类使用哈希表实现Map接口,在比较键(和值)时使用引用相等性代替对象相等性
结果可能是2.但实际是1.IdentityHashMap类是错误的吗?
我想要求更多澄清.这是我的示例程序
double diff = 7.500 - 7.500;
System.out.println(diff); // result 0.0
if (diff > 0) {
System.out.println("+" + diff ); //result +0.0
} else {
System.out.println("-" + diff ); //result -0.0
}
Run Code Online (Sandbox Code Playgroud)
我的结果是-0.0.我的期望是0 == 0.0然后跳过if else条件.但它进入了其他条件.双倍0.0是大于还是小于0?
我写了以下课程:
public class TestOne {
public static void main(String[] args) {
int count = 0;
for (int i = 0; i < 100; i++) {
count++;
}
System.out.println(count);
}
}
Run Code Online (Sandbox Code Playgroud)
输出是100.
然后我添加了一个分号:
public class TestOne {
public static void main(String[] args) {
int count = 0;
for (int i = 0; i < 100; i++); { // <-- Added semicolon
count++;
}
System.out.println(count);
}
}
Run Code Online (Sandbox Code Playgroud)
输出是1.
结果令人难以置信.为什么这个添加分号会如此戏剧性地改变我的程序的含义?
我想通过阅读以下路径来制作文件夹和文件
/project/tags/folder2/command.txt
/project/branches/folder1/folder1.1/Notes.docx
Run Code Online (Sandbox Code Playgroud)
并在驱动器D:\之下构建文件夹和文件
project
tags
folder2
command.txt
branches
folder1
folder1.1
Notes.docx
Run Code Online (Sandbox Code Playgroud)
然后使用这个物理结构用超链接键入树状视图(请假设我用*标记*表示单词具有超链接的名称).使用vba宏查看excel表格中的最后文件和文件夹.参见
project
|_tags
| |_folder2*
| |_command.txt*
|_branches
| |_folder1
| |_folder1.1*
| |_Notes.docx*
Run Code Online (Sandbox Code Playgroud)
所以请为vba noob提供帮助.