小编Dea*_*n J的帖子

为什么要使用getter和setter/accessors?

使用getter和setter的优点是什么 - 只能获取和设置 - 而不是简单地使用公共字段来存储这些变量?

如果getter和setter做的不仅仅是简单的get/set,我可以非常快地解决这个问题,但我并不是100%清楚如何:

public String foo;
Run Code Online (Sandbox Code Playgroud)

更糟糕的是:

private String foo;
public void setFoo(String foo) { this.foo = foo; }
public String getFoo() { return foo; }
Run Code Online (Sandbox Code Playgroud)

而前者需要很少的样板代码.

java oop getter setter abstraction

1472
推荐指数
26
解决办法
37万
查看次数

在内存中存储图形的三种方法,优点和缺点

有三种方法可以在内存中存储图形:

  1. 节点作为对象,边缘作为指针
  2. 包含编号节点x和节点y之间的所有边缘权重的矩阵
  3. 编号节点之间的边缘列表

我知道如何写这三个,但我不确定我是否已经考虑过每个人的所有优点和缺点.

将这些图存储在内存中的每种方法有哪些优点和缺点?

graph

86
推荐指数
7
解决办法
6万
查看次数

Web Services vs EJB vs RMI,优缺点?

如果在那里完成所有工作,我的Web服务器将很快超载.我要站在它后面的第二台服务器来处理数据.

EJB相对于RMI有什么优势,反之亦然?

那么Web服务(SOAP,REST)呢?

java distributed web-services ejb rmi

55
推荐指数
2
解决办法
7万
查看次数

32
推荐指数
5
解决办法
3万
查看次数

为什么要收购Harvest呢?

您的工作环境是否使用Harvest SCM?我现在已经在两个不同的地方使用它,发现它令人震惊.在一种情况下,我编写了一个转换脚本,因此我可以在本地使用CVS,然后在我睡觉时每天将更改导入Harvest系统.尽管有80%的程序员在为不同的东西哭泣,但该公司对使用Harvest感到狂热.这是不必要的复杂,缓慢和沉重.现在,我的工作要求就是在我工作的地方没有使用Harvest.

还有其他人之前使用过Harvest吗?你有什么经历?和我一样糟糕?您是否采用了其他不同的解决方法?为什么今天仍然购买此产品?

version-control harvest

24
推荐指数
5
解决办法
2万
查看次数

课程什么时候太长了?

什么时候功能太长了?我想是这个问题的一个子集.

确定课程太长的几个好指标是什么?

我正在为一个与外部承包商的项目重新制定一套代码验收指南,并意识到我过去没有涉及这个问题,但是应该在将来讨论这个问题.

oop code-design

22
推荐指数
3
解决办法
1万
查看次数

对没有使用过它们的人定义"类"和"对象"这两个词的最佳方法是什么?

我的邻居正在参加"Java简介",并请我帮助解释一些第一天的概念.我意识到,因为我每天都这样做,所以我没有初学者的想法,而且从头开始很难将这些东西联系起来.

对我来说,实际上并非无足轻重的解释是"什么是一个班级?"


我到目前为止最好:

  • 变量持有某种数据; 一个变量可能是名字,另一个变量可能是你的体重(磅).

  • 一个方法是一个函数,它的东西,可以用这些变量做的东西.一种方法可能会在屏幕上显示您的名字,或者告诉您,为了获得良好的BMI比率,您应该减掉多少体重.

  • 一个对象保持变量和方法; 一个对象可能代表你,第二个对象可能代表我.

  • 是一种描述方法和变量,将在每个对象的蓝图或模板.对象是实例化的(一个实例)类; 一个对象就是某种东西,而这个类只是制作这个东西的计划.

继续这个例子,我们有一个Person对象,它被实例化以保存Alice的数据,另一个Person对象被实例化以保存Bob的数据,另一个用于Carol,依此类推.


如何调整此示例以使其更有意义,和/或什么是更好的方法?"实例化"这个词在这一点上感觉太重了.

(我认为这是一个有用的问题,但显然是主观的;标记为社区维基.)

java oop terminology

22
推荐指数
3
解决办法
3万
查看次数

强制使用牙箍

作为代码标准文档的一部分,我写了一段时间,我强制执行"你必须总是使用大括号循环和/或条件代码块,甚至(特别是)如果它们只是一行."

例:

// this is wrong
if (foo) 
    //bar
else 
    //baz
while (stuff)
    //things

// This is right.
if (foo) {
    // bar
} else {
    // baz
}
while (things) {
    // stuff
}
Run Code Online (Sandbox Code Playgroud)

如果你不支持单行,然后有人评论出来,那你就麻烦了.如果你不支持单行,并且缩进在其他人的机器上显示不相同......你就麻烦了.

所以,问题:为什么这会是一个错误的或其他不合理的标准有充分的理由吗?有一些讨论,但没有人能给我一个比"感觉难看"更好的反驳.

maintainability coding-style

17
推荐指数
6
解决办法
1522
查看次数

作业:如何编写自己的大数字乘法?

在我的项目中,我必须处理在我自己的BigNumber类中盯着的大数字(大于java.long)的乘法int[].基本上我需要实现这样的事情:

    157 x
    121 y
   ----
    157 result1
   314  + result2
  157   + result3
 ------
 18997  finalResult
Run Code Online (Sandbox Code Playgroud)

但是我该如何实现呢?

我考虑用零(3140,15700)扩展result2,3并添加它们.但首先我需要在y的每个数字之间导航并将其乘以x的每个数字.

java

16
推荐指数
1
解决办法
2万
查看次数

Postorder Traversal

有序树遍历显然有应用; 按顺序获取内容.

预序遍历似乎对创建树的副本非常有用.

二叉树的后序遍历是否常见?

binary-tree traversal tree-traversal

15
推荐指数
1
解决办法
4374
查看次数