나는 작업중인 웹 사이트에서이 코드를 복사하여 붙여 넣습니다.Java oop - 상속
* A Line composes of two Points - a begin point and an end point.
*/
public class Line {
// The private instance variables
Point begin, end; // Object members - instances of the Point class
// Constructors
public Line(int x1, int y1, int x2, int y2) {
begin = new Point(x1, y1); // Construct the instances declared
end = new Point(x2, y2);
}
public Line(Point begin, Point end) {
this.begin = begin; // The caller constructed the instances
this.end = end;
}
// The public getter and setter for the private instance variables
public Point getBegin() {
return begin;
}
public Point getEnd() {
return end;
}
public void setBegin(Point begin) {
this.begin = begin;
}
public void setEnd(Point end) {
this.end = end;
}
public int getBeginX() {
return begin.getX(); // Point's getX()
}
public void setBeginX(int x) {
begin.setX(x); // Point's setX()
}
public int getBeginY() {
return begin.getY(); // Point's getY()
}
public void setBeginY(int y) {
begin.setY(y); // Point's setY()
}
public int[] getBeginXY() {
return begin.getXY(); // Point's getXY()
}
public void setBeginXY(int x, int y) {
begin.setXY(x, y); // Point's setXY()
}
public int getEndX() {
return end.getX(); // Point's getX()
}
public void setEndX(int x) {
end.setX(x); // Point's setX()
}
public int getEndY() {
return end.getY(); // Point's getY()
}
public void setEndY(int y) {
end.setY(y); // Point's setY()
}
public int[] getEndXY() {
return end.getXY(); // Point's getXY()
}
public void setEndXY(int x, int y) {
end.setXY(x, y); // Point's setXY()
}
// The toString() describe itself
public String toString() {
return "Line[begin=" + begin + ",end=" + end + "]";
// Invoke begin.toString() and end.toString()
}
public double getLength() {
return begin.distance(end); // Point's distance()
}
}
그래서 여기에 우리는 우리가 우리가 클래스를 contruct 여기에 참조로 그래서, 거기 생성자와의 .... 클래스 공용 클래스 점과 최초의 생성자 공공 라인에 공용 클래스 라인
에 있습니다 그것이 사용 된 방법이나 논리에 대한 잘못된 점에 대해서는 아무런 문제가 없습니다.
또한이 방법이 있습니다. public Point ... 이것은 Point 클래스가 아니므로 여기서이 메서드를 사용할 수 있습니다.
포인트가 일종의 역전 류처럼 작동하기 때문에 그 방법에서 우리는 시작하고 시작하지 않아도된다는 점이 포인트 클래스이며, 포인트 클래스로 정의 된 객체입니다. 그래서 나는 그것을 얻을 수있는 유일한 방법입니다. 하지만 일단 우리가하면
public static void main(String[] args) {
Line l1 = new Line(new Point(7,8), new Point(2,5));
생성자가 여기에서 작동하기 시작합니다. 그래서 결국 새로운 라인이 형성됩니다. 생성자에는
return line;
과 같은 것이 없거나 반환 선이 있습니다. 그러나 우리는 그것을 볼 수 없는가? 나는 모른다. 그러나 포인트로 반환 형식을 취하는 방법에 내가 여기에 논리를 이해하는 데 문제가하는
return point;
하지만
생성자에서return x;
있다.
과 방법으로 우리는이 방법으로이 방법public Point getBegin() {
return begin;
}
혜택을 누릴 수 있습니다 : 우리가 그런 일을 할 그냥 시작하지 않는 경우
l1.getBegin().SOMEPOINTMETHOD;
하지만
l1.getBegin();
어떤 결과물을 얻을 수 있습니까? 출력 유형을 가리키고 있지만, 포인트는 객체이기 때문에 우리는 객체의 인스턴스를 입력하지 않았으므로 아무 것도 얻지 못할 것입니다. 이클립스는이 경우 이상한 오류를 준다.
나는 너무 오랜 시간이 걸렸으나 여기서 논리를 이해하려고 노력하고 있음을 안다. 나는 너무 어리 석고 당장 판단하지 말아라. 미안하다. 주제)
그러나 반환 유형과 같은 것이 있으므로 'public Point xxx'는 실제로는 일반 메소드이고 생성자는 아닙니다. 메소드'public int getSize() {...}'는 리턴 타입이'int' 인 일시적인 메소드가 될 것입니다. – SomeJavaGuy
"하지만 생성자에는 반환 선과 같은 것이 없습니다." - 생성자에 반환 유형이 없습니다. 이런 식으로 생각해 봅시다. 생성자는 이미 명시 적으로 반환 할 필요가없는 클래스의 인스턴스를 이미 생성했기 때문입니다. – Mamun
만약 내가 당신이라면,이 기본 Java 읽기 (예 : https://docs.oracle.com/javase/tutorial/java/concepts/object.html) 중 일부를 먼저 살펴 보겠습니다. points :)> https://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.8 Java를 배우는 것에 대해 진지하게 생각하고 있다면, 저를 신뢰하십시오. 아무리 좋은 독서를해도 많은 도움이됩니다. 그래서 신선한 것을 시작할지도 모릅니다 :)! – Filip