我试图完全理解"这个"是如何工作的.在我之前的帖子中,我理解为什么我们使用"this"关键字.
我对static的理解是该类有该成员的一个副本."this"用于表示当前对象.对于所有对象,静态成员变量是相同的,那么为什么"this"对静态成员变量起作用?
码:
public class OuterInnerClassExample
{
public static void main(String[] args)
{
OuterClass outClassObj = new OuterClass(10);
outClassObj.setInt(11);
outClassObj.setInt(12);
System.out.println("Total Count: " + outClassObj.getCount() );
}
}
class OuterClass
{
private int test;
private static int count; // total sum of how many new objects are created & the times all of them have been changed
public OuterClass(int test)
{
this.test = test;
// count += 1; // preferred as count is static
this.count += 1; // …Run Code Online (Sandbox Code Playgroud) 在以下程序中:
import java.util.*;
public class HashTableStringdouble
{
// private Hashtable<String, double[]> model = new Hashtable<String, double[]>();;
private Hashtable<String, double> model = new Hashtable<String, double>();; // this does not work
public static void main(String args[])
{
}
}
Run Code Online (Sandbox Code Playgroud)
有双[]但不是双倍.它给出以下错误:
HashTableStringdouble.java:7:错误:意外类型private Hashtable model = new Hashtable();; //这不起作用^ required:reference found:double HashTableStringdouble.java:7:error:unexpected type private Hashtable model = new Hashtable();; //这不起作用^必需:引用找到:double 2错误
我不确定我在这里做错了什么.请解释一下Hashtable的工作原理.
var = putVar;以下代码运行 ; & this.var = putVar;
我理解:"this"用于识别 - "将此值仅用于'我的'对象".当两者都有效时,为什么人们通常在制定者中使用"这个"?
码:
public class PlayingWithObjects
{
public static void main(String[] args)
{
SomeClass classObj = new SomeClass(10);
System.out.println("classObj.getVar: " + classObj.getVar() );
classObj.setVar(20);
System.out.println("classObj.getVar: " + classObj.getVar() );
classObj = new SomeClass(30);
System.out.println("classObj.getVar: " + classObj.getVar() );
}
}
class SomeClass
{
private int var;
public SomeClass(int putVar)
{
var = putVar;
}
public int getVar()
{
return var;
}
public void setVar(int putVar)
{
// var = putVar; …Run Code Online (Sandbox Code Playgroud)