2014-11-10 1 views
2

최근 취업 면접에서 "Java는"객체 지향 언어 "입니까?자바는 "완전히"객체 지향 언어입니까?

나는 그 질문에 답할 수 없었고 답을 모른다. 누군가이 질문의 본질을 이해하도록 도와 줄 수 있었 을까?

내가보기에는 "의견 기반"으로 끝나고있는 것은 내가 바라는 의견이 아닙니다. 나는 그것이 완전하게/불완전하게 카테고리인지 알지 못하는지 묻습니다.

이 질문에 대한 잘못된 포럼인지 여부를 자세히 알려주십시오.

+3

이것은 100 % 개인 의견이지만 인터뷰에서 이와 같은 질문을하는 회사는 피하려고합니다. – biziclop

+0

인사 또는 실제 개발자가 요청 했습니까? – Aeseir

+2

인터뷰어가 실제로 무엇을 의미하는지 잘 모르겠지만, 순수 자바에 관해서는 다음과 같이 말하고 싶습니다. 그렇습니다. 모든 것이 클래스/객체의 개념을 바탕으로 구축되었으므로 완전히 객체 지향적입니다. C/C++ 같은 무료 함수는 없습니다. 다른 JVM 언어를 믹스에 넣으면 완전히 다른 이야기가됩니다. – Thomas

답변

3

자바에는 프리미티브가 있습니다. 프리미티브는 객체가 아닙니다.

int i=0; 

여기 i 객체가 아니라 실제 값을 포함합니다 : 그것은 여전히 ​​원시 데이터 타입, 예를 들어

가 포함되어 있기 때문에

+0

java는 래퍼 클래스를 지원하므로 int, long 등은 래퍼 클래스의 객체입니다. 그래서 어떻게 자바를 호출 할 수 있습니다 순수한 객체 지향 – VedX

+0

@Veke 경우에만 래퍼 클래스를 것입니다. – assylias

+0

원시 데이터 유형 때문에 Java가 순수 객체 지향이 아니므로 말할 수 있습니다. – VedX

0

잘 자바는, 100 %의 객체 지향이다. 그러나

,

Set<String> set=new HashSet<String>(); 

set는 [^] 등 INT, 바이트 길이 ... 등 원시 ​​데이터 유형을 지원하기 때문에 HashSet의

+0

자바는 포인터를 가지고 있지 않습니다. 'set'은 참조입니다. – ryanpattison

+0

@rpattiso 미안하지만, 여기에서는 잘못된 용어를 사용했습니다. 그러나 실제로는 포인터는 기본적으로 참조입니다. 내 대답 – nafas

2

호 자바 referes가 아닌에 refrence 인 , 사용할 수있는, 개체가 아닙니다.

순수한 객체 지향을 위해서는 프로그래밍 언어가 만족해야 할 7 가지 자질이 있습니다. 그들은 :

  • 캡슐화/데이터 숨기기
  • 상속
  • 다형성
  • 추상화
  • 사전 정의 된 모든 종류의
  • 모든 작업이 개체
  • 모든 사용자에게 메시지를 전송하여 수행하는 객체 정의 된 유형은 객체입니다.
+0

에서 참조로 포인터를 변경했습니다.이 7 가지 자질은 어디서 오는 것입니까? – ryanpattison

+2

LISPER에게 어떤 자질을 만족시켜야하는지 물어 보면 완전히 다른 이야기를들을 수 있습니다. OOP는 주로 동적 메서드 디스패치입니다. 당신의 목록에서 그것은 대략 다형성에 해당합니다. –

2

당신이 어떻게 보느냐에 따라 다르지만, @biziclop이 말했듯이, 그것은 의견의 문제입니다.

자바를 아시다시피 알 수 있듯이 객체 지향 언어이지만 여전히 함수형 프로그래밍 (원시적 인 인수를 사용하여 결과를 반환하는 정적 메서드)이 가능합니다.

원시 객체는 객체가 아니기 때문에 Java로 객체가 아닌 프로그래밍을 할 수 있습니다.

기술적으로, 아니요, Java는 완전한 객체 지향 언어가 아닙니다.