我做了简短的搜索,但并不确定我在问什么。把我的脚浸入Java和OOP。
采取此声明:
SomeClass myClass = new SomeClass();
(这是我最常见的经历),您可以这样做:
$myClass = new SomeClass
那为什么会有区别? SomeClass
的“前缀”是什么,在PHP中没有必要。
我是正确的,在第一个例子中,我声明了一个类型为“SomeClass”的类,与声明的方式非常相似:int myInt;
希望这是有道理的。感谢。
编辑也没有尝试进入PHP / Java辩论,只是PHP是我熟悉的语言!
答案 0 :(得分:3)
简而言之是。
您说您想要一个myClass
类型的变量SomeClass
,并将其初始化为new SomeClass()
更长的Explination:
你这样做的原因是它允许编译器,IDE和其他任何知道myClass
是SomeClass
的人。
简短示例:
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 = new SomeClass(); myClass.SomeInt = 4; myClass.SomeString = test; 当然这是一个非常简单的例子,但它显示了你在做什么以及你可以用它做什么。
正如所指出的,这被称为静态类型,因为您必须在编译时声明对象类型是什么。 PHP使用动态类型,这意味着它在运行时确定对象的类型。
在Java中;但是,您可以使用var
关键字让它动态确定对象类型。
答案 1 :(得分:3)
Java是一种“强类型语言”。 PHP不是。
去搜索那个短语,你将有几个小时的娱乐时间来了解这个有什么好,坏,无所谓。你会发现任何3个人都有5个意见。
答案 2 :(得分:1)
您要声明类型为myClass
的新变量SomeClass
,然后使用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是一种强类型语言,你必须在使用它之前声明变量的类型。这允许编译器在编译时进行类型检查,在许多情况下可以防止编程错误。
答案 3 :(得分:0)
该行正在做的是创建SomeClass类型的变量。换句话说,您正在创建SomeClass类的实例,该实例与声明类不同。类声明如下:
public class SomeClass {
}
答案 4 :(得分:0)
不同之处在于Java是静态类型的,而PHP是动态类型的。
这(简而言之)意味着java为了能够在给定对象上调用方法,编译器必须知道对象的类型。它会告诉你是否允许你调用这个方法。
在PHP中,此检查在运行时(稍后)执行,因此不需要编译器(不是有任何检查)来执行任何检查。