2011-03-15 4 views
1

간략히 검색했지만 정말로 확신하지 못했습니다. 무엇 부탁드립니다. 내 발을 Java와 OOP에 담그세요. (나는 대부분의 경험이 무엇 인), 당신은 그냥 할 것자바 클래스 선언 설명

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 SomeClass myClass가()를 설정 다만 수있다; myClass.SomeInt = 4; myClass.SomeString = test; 물론 이것은 아주 간단한 예이지만 현재하고있는 일과 그로 인해 할 수있는 일을 보여줍니다.

정적 유형 지정 (static typing)이라고 알려져 있으므로 컴파일 할 때 객체 유형을 선언해야합니다. PHP는 동적 타이핑을 사용합니다. 즉, 런타임에 객체의 유형을 결정합니다.

Java에서; 그러나 var 키워드를 사용하여 오브젝트 유형을 동적으로 판별 할 수 있습니다.

3

자바는 '강력한 형식의 언어'입니다. PHP는 그렇지 않습니다.

해당 구문을 검색하면 좋고, 나쁘고, 무관심한 것에 대해 오랜 시간 동안 재미있게 학습하게됩니다. 그리고 당신은 3 명 중 5 명이 의견을 찾았습니다.

0

그 라인이하고있는 일은 SomeClass 타입의 변수를 만드는 것입니다.즉, 클래스를 선언하는 것과 같지 않은 클래스 SomeClass의 인스턴스를 작성하는 것입니다. 클래스는 다음과 같이 선언됩니다.

public class SomeClass { 

} 
0

차이점은 Java는 정적으로 입력되고 PHP는 동적으로 입력된다는 것입니다.

이것은 (간단히 말해서) 주어진 객체에 대해 메소드를 호출하기 위해 java가 컴파일러가 객체 유형을 알아야한다는 것을 의미합니다. 메소드를 호출 할 수 있는지 여부를 알려줍니다.

PHP에서는이 검사가 런타임에 수행되므로 모든 검사를 수행하는 컴파일러가 필요하지 않습니다.

1

여기서 SomeClass 유형의 새 변수 myClass을 선언 한 다음 해당 변수의 새 개체를 new SomeClass()으로 지정합니다.

어쩌면 이와 같은 차이점이 더 명확 할 수도 있습니다. bmargulies 말했듯이

// 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(); 

는 자바는 강력한 형식의 언어입니다, 당신은 그것을 사용하기 전에 변수의 타입을 선언해야합니다. 이를 통해 컴파일러는 컴파일 시간에 유형 검사를 수행 할 수 있으며, 많은 경우 프로그래밍 실수를 방지 할 수 있습니다.