2011-03-15 64 views
1

我做搜索虽然简短,但是真的不知道什么我问。只需将我的脚放入Java和OOP即可。的Java类声明的解释

借此声明:

SomeClass myClass = new SomeClass();

在PHP(这是我与大多数经验),你只是做:

$myClass = new SomeClass

那么,为什么不同? SomeClass的“前缀”是做什么的,在PHP中是没有必要的。

我是正确的,在第一个例子中,我声明一个类类型的“SomeClass的”,大致相同的方式,你会宣称:int myInt;

希望这是有道理的。谢谢。

编辑也没有试图进入一个PHP/Java的辩论,只是PHP是一种我熟悉的语言!

回答

3

总之是的。

你是说你想SomeClass类型的变量myClass,并初始化为new SomeClass()

更长Explination的价值:

的原因,你做的是,它可以让编译器,IDE和无论其他什么都知道myClassSomeClass

简短的例子:

public class SomeClass(){ 

    public int SomeInt = 0; 
    public string SomeString = ""; 

    public SomeClass(string initialString) 
    { 
     SomeString = initialString; 
    } 

    public SomeClass(int initalValue) 
    { 
     SomeInt = initialValue; 
    } 
} 

现在你可以创建一个SomeClass的和做的事情来初始化它的一部分。

//Initialize a new instance of SomeClass with someString set to test 
SomeClass setSomeString = new SomeClass("test"); 
//Initialize a new instance of SomeClass with SomeInt set to 4 
SomeClass setSomeInt = new SomeClass(4); 

或者你可以只是做 //初始化SomeClass的一个新的实例,然后设置的值 SomeClass的MyClass的=新SomeClass的(); myClass.SomeInt = 4; myClass.SomeString = test; 当然这是一个非常简单的例子,但它显示了你在做什么以及你可以用它做什么。

因为它指出了这个被称为静态类型,因为你必须声明的对象类型是在编译时什么。 PHP使用动态类型,这意味着它在运行时确定对象的类型。

在Java中;不过,您可以使用var关键字使其动态确定对象类型。

3

Java是一种 '强类型语言'。 PHP不是。在这句话

去搜索,你将有娱乐时间了解什么是好的,坏的,冷漠的这一点。你会发现任何3个人有5个意见。

0

什么该行正在做的是创造型SomeClass的变量。换句话说,您正在创建SomeClass类的实例,它与声明一个类不同。一个类声明如下:

public class SomeClass { 

} 
0

不同之处在于Java是静态类型的,而PHP是动态类型的。

这(简而言之)意味着java为了能够调用给定对象上的方法,编译器必须知道该对象的类型。它会告诉你是否允许你调用该方法。

在PHP中,此检查是在运行时(稍后)执行的,因此不需要编译器(不是有任何)来执行任何检查。

1

在那里您正在声明SomeClass类型的新变量myClass,然后将该类的新对象赋值为new SomeClass()

也许这是更清晰的写这样的区别。

// Declares myClass to be of type SomeClass but without initializing it. 
SomeClass myClass; 
// Creates a new object of the class SomeClass and asigns it to myClass 
myClass = new SomeClass(); 

正如bmargulies所说,java是一种强类型语言,您必须在使用它之前声明变量的类型。这允许编译器在编译时进行类型检查,在许多情况下可以防止编程错误。