我很好奇printStackTrace()和toString()之间的区别.乍一看,他们似乎完全一样.
码:
try {
// Some code
} catch (Exception e)
e.printStackTrace();
// OR
e.toString()
}
Run Code Online (Sandbox Code Playgroud) 我正在使用该range()函数来创建一个数组.但是,我希望它keys与之相同value.当我range(0, 10)从索引开始时这样做是可以的0,但是如果我这样做range(1, 11),索引仍然会从索引开始0,所以0=>1当我想要它时它会结束1=>1
我如何使用range()创建一个key与value?相同的数组?
关于PHP函数声明关键字一个小点:如果你有一类方法是静态的,应在static关键字的知名度关键字之前或之后都(public,protected,private)?假设您的所有方法(静态或其他方法)都有可见性关键字,那么您希望visibility关键字与关键字保持在同一位置function:
public function foo() {}
public function bar() {}
protected function baz() {}
private function quux() {}
Run Code Online (Sandbox Code Playgroud)
现在假装一对夫妇是静态的:
public function foo() {}
static public function bar() {}
protected function baz() {}
static private function quux() {}
Run Code Online (Sandbox Code Playgroud)
此外,如果某个方法是静态的,那么您希望这是第一个看到的方法,因为这对于它甚至是可见性关键字所做的方法有更多的影响.
这严格来说是一个可读性问题,因为它显然没有功能或设计后果.(我能想到的.)
将方法标记为public包私有类是否有所不同?
class SomePackagePrivateClass
{
void foo(); // package private method
public void bar(); // public method
}
Run Code Online (Sandbox Code Playgroud)
这之间foo和bar这里的可见度是否存在实际差异?
给定任何对象我可以调用#public_methods并查看它将响应的所有方法.但是,我发现有时候获得一个没有继承的所有公共方法的快速列表是有用的,也就是那些真正属于这个类的东西.
我找到了" 简单的方法列出Ruby对象的公共方法 ",如果我使用:
(Foo.public_methods - Object.public_methods).sort
Run Code Online (Sandbox Code Playgroud)
我可以过滤掉很多基本的Ruby东西.我希望能够过滤掉链条上一直延续的所有内容.如果我知道父类我可以使用它进行过滤,但我想提出一个通用命令,它可以返回任何对象的未公开公共方法的数组.
这两种方法有什么区别 - System.exit()和JFrame.dispose()?
如果我们想在单击按钮时关闭Java Swing应用程序,我应该使用哪种方法?
如果创建一个JQuery的微件(下文代码示例)中,然后定义一个"公共"的方法,是有任何其他方式来调用比使用以下形式的其它方法?
$("#list").list("publicMethod");
Run Code Online (Sandbox Code Playgroud)
我想创建一系列小部件,它们都定义相同的方法(基本上实现相同的接口),并且能够在不知道我当前正在调用该方法的哪个小部件的情况下调用该方法.在当前表单中,我需要知道我正在"list"小部件上执行该方法.
下面是使用"public"方法创建窗口小部件的示例.
(function($) {
var items = [];
var itemFocusIdx = 0;
$.widget("ui.list", {
// Standard stuff
options : { ... },
_create : function() { ... },
destroy : function() { ... },
// My Public Methods
publicMethod : function() { ... }
...
});
}(jQuery));
Run Code Online (Sandbox Code Playgroud) 我在Java中遇到了一个奇怪的问题,这是我以前从未见过的.
错误是"无法访问类型为Server的封闭实例.必须使用类型为Server的封闭实例限定分配(例如,xnew A(),其中x是Server的实例)."
我评论过的那一行是错误发生的地方.
package game;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.StringTokenizer;
public class Server {
private static List<ThreadModtagClient> clients;
class ReceiveDataListener implements SocketListener {
@Override
public void dataReceived(ThreadModtagClient client, String data) {
}
}
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
clients = new ArrayList<ThreadModtagClient>();
ServerSocket welcomeSocket = new ServerSocket(16567);
while …Run Code Online (Sandbox Code Playgroud) 我正在考试这StringTokenizer.java门课,脑海里浮现出几个问题.
我注意到其他类使用的公共方法调用了一些完成所有工作的私有方法.现在,我知道OOD的原则之一就是尽可能多地私有化并隐藏所有实现细节.我不确定我是否完全理解这背后的逻辑.
我理解,将字段设为私有以防止将无效值存储在其中非常重要(这只是众多原因之一).然而,当谈到私人方法时,我不确定它们为何如此重要.
例如,在StringTokenizer类的情况下,我们不能只将所有实现代码放在公共方法中吗?它如何对使用这些方法的类产生影响,因为这些方法的API(即调用这些公共方法的规则)将保持不变?我能想到为什么私有方法有用的唯一原因是它可以帮助你编写重复的代码.例如,如果所有公共方法都做了同样的事情,那么您可以声明一个执行此任务的私有方法,并且可以由公共方法使用.
其他问题,在私有方法中编写实现而不是公共方法有什么好处?
这是一个小例子:
public class Sum{
private int sum(int a, int b){
return a+b;
}
public int getSum(int a, int b){
return sum(a,b);
}
}
Run Code Online (Sandbox Code Playgroud)
VS ...
public class Sum{
public int getSum(int a, int b){
return a+b;
}
}
Run Code Online (Sandbox Code Playgroud)
第一个样本如何更有益?
java encapsulation private-methods stringtokenizer public-method