2014-09-17 2 views
1

나는 Vector 인 변수 velocity이 선언 그 안에서, 클래스 Ball을 가지고, bounce라는 기능이 이제 다른 곳에서 수업 시간에Java 구문 혼동, 변수 메소드 호출 중?

private Vector velocity; 

선언과 같은 :

public void bounce(float surfaceTangent) { 
    velocity = velocity.bounce(surfaceTangent); 
} 

velocity을 지정하는 행이 나에게 익숙하지 않은 구문을 이해하지 못합니다. 호출 속도가 bounce 인 것처럼 보이지만 velocity은 변수가 아니라 클래스입니다. 그것은 전혀 기능이 없습니다 ... 정확히 무엇을하고 있습니까?

+0

Java에서 모든 객체 (변수 값)는 어떤 클래스의 * 인스턴스 *입니다. 이른바 기본 요소 ('boolean','int','float' 등)는 제외됩니다. – 5gon12eder

+0

['Vector'] (http://docs.oracle.com/javase/7/docs/api/java/util/Vector.html)에는'bounce()'메소드가 없기 때문에 실제로 이상합니다. 나는'Ball'이'bounce()'메소드를 가질 것으로 기대합니다. –

+2

@ PM77-1 아마도 List Vector가 아니라 물리 (즉, 방향 및 속도)에서 동작 벡터를 저장하는 클래스 일 것입니다. @ bock.steve velocity는 클래스의 인스턴스입니다. 여러 번 객체를 다른 객체로 재 할당하거나 객체 자체를 기반으로 객체를 변경해야 할 수도 있습니다. 예를 들어,'myString = myString.trim();'은 모든 공백 문자의 myString을 자르고 다시 myString에 저장합니다. – Compass

답변

1

Velocity는 벡터의 모든 인스턴스에 속하는 인스턴스 메서드 및 인스턴스 변수가있는 Vector 클래스의 인스턴스입니다 (대부분의 사람들이 해당 유형 이름을 java.util.Vector에 연결하기 때문에 여기에 혼동하는 이름입니다). 바운스는 여기서 인스턴스 메소드처럼 보입니다. 객체 지향 프로그래밍에서는 대개 메소드를 통해 객체 (인스턴스)와 상호 작용합니다.

속도는 변수가 아니라 클래스입니다. 그것은 전혀 기능을 가지고 있지 않습니다 ...

Java에서 클래스는 고유 한 클래스 메소드 (및 클래스 변수)를 가지며, 이것들은 static의 메소드 수정 자로 표시됩니다.

+0

당신은'bounce()'가'ava.util.Vector '의 기존 방법이라고 말하고 있습니까? –

+2

@ PM77-1 아니요. 그의 코드 예제에서 Vector 클래스가 java.util.Vector이고 여기에서 가정 한 기존 코드를 수정하는 방법을 보여주는 코드는 없습니다. 여기서 Vector는 분명히 java.util.Vector가 아닙니다. – NESPowerGlove

+0

실제 객체의 동작을 모델링하는 코드를 작성하는 경우 이름을 잘못 선택하지 않아도되지만 예제가 'import mumble.physics.Vector;'로 시작한 경우 5 초 정도의 시간이 절약 될 수 있습니다. –

0

Velocity 인스턴스에서 호출 된 bounce(float) 메서드에 의해 반환 된 값을 할당 할 velocity이라는 변수가 선언되었습니다.