시소당
제가 다니는 회사에서 외부교육기회가 있어서 이번주부터 삼성멀티캠퍼스에서 자바프로그래밍 강의를 듣고있습니다.(만쇄! ^^) 저희
회사에서는 PHP 와 Java 로 서비스를 하고있는데요. 개인적으론 객체지향의 개념을 PHP 5 작업을 하면서 잡았기
때문에(N800 으로 PHP in Action 을 보고 있죠 ^^) Java 와 PHP 의 객제지향 문법에 대한 차이를
정리해봤습니다.
물론 PHP 에서는 네임스페이스를 지원하지 않는(곧 된다던데...^^)등의 중요한 차이가 있지만 PHP5 만의 객체지향설계방법으로도 훌륭한 개발(?)이 될수 있다고 판단되네요...
한참 교육중이라 빠진 부분도 많고 틀린부분도 많겠지만... 의견달아주시는 분들도 계시면 좋겠습니다.
본 글은 계속 수정하겠습니다.
1. 폴리모피즘
Java : Overloading, Overriding이 지원되며, 중요한
요소
PHP : Overloading 반드시 static, public 으로 정의 되야 함,
Overriding 불가 (Overriding 제한적 지원)
2. 생성자
java : Class 이름(), 여러개의 생성자가 Overloading 될 수 있다.
PHP : _Construct(), 클래스당 한개의 생성자만 허용한다.
3. static 변수/메소드 참조 문법
Java : 클래스이름.스태틱 변수명
PHP : 클래스이름::스태틱 변수명
static 변수의 범위가 다르다. Java 에선 모든 객체에서 한곳의 static 영역의 값을 참조가능
4. 배열의 자료형
Java : 참조형으로 생성된다. 한가지 타입밖에 못들어간다. 최초 생성시 길이가 제한적이다. --;
PHP :
일반 변수 모든 자료형이 들어갈 수 있다. 맘대로 늘릴수 있다.
5.멤버변수, 멤버 메소드 호출형식
Java : 객체.멤버변수
PHP : 객체->멤버변수
*** PHP에만 있는것들
1. _autoloaing
2. magic method
출처 : Woooooo Story http://wooooo.tistory.com/entry/Java-%EC%99%80-PHP5525-%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5-
%EB%AC%B8%EB%B2%95-%EC%B0%A8%EC%9D%B4%EC%A0%90