객체지향 프로그래밍의 보안성 때문에 멤버변수는 private 으로 두고
public 메서드로 접근할 수 있도록 함
이클립스에서 클래스 멤버 변수를 선언하고
class 안에서 마우스 우클릭
source
->Generate Constructer using Field : 생성자 자동 생성
->Generate Getters and Setters Methods for the type's field : get, set 메서드 자동 생성
public class Main {
public static void main(String[] args) {
Node one = new Node(10,20);
Node two = new Node(30,40);
Node result = one.GetCenter(two);
System.out.println("두 점 사이의 정중앙: "+result.GetX()+","+result.GetY());
one.SetX(60); //60,20
two.SetY(60); //30,60
Node result2 = one.GetCenter(two);
System.out.println("두 점 사이의 정중앙: "+result2.GetX()+","+result2.GetY());
}
}
public class Node {
private int x,y;
//생성자
public Node(int x, int y)
{
this.x=x;
this.y=y;
}
public int GetX()
{
return x;
}
public void SetX(int x)
{
this.x=x;
}
public int GetY()
{
return y;
}
public void SetY(int y)
{
this.y=y;
}
public Node GetCenter(Node other)
{
return new Node((this.x+other.GetX())/2, (this.y+other.GetY())/2);
}
}
상속을 받을 때는 extends 키워드 사용
Person ----------------- 상속 --------> Student
(이름, 나이, 키, 몸무게) (학번, 학년, 학점)
자식 클래스에서 위의 getter setter 랑 생성자 자동생성을 눌러주면
상속받은 클래스의 멤버변수를 자신의 생성자를 통해서 초기화 한다.
super(부모 클래스 멤버변수); -> 부모 클래스의 생성자 실행
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Student student1 = new Student("홍길동",20,175,70,"20200101",1,3.5);
Student student2 = new Student("임꺽정",25,170,65,29423122+"",3,2.5); //숫자+"" => 문자열로 바꾸기
student1.Show();
student2.Show();
}
}
public class Person {
private String name;
private int age;
private int height;
private int weight;
public Person(String name, int age, int height, int weight) {
super();
this.name = name;
this.age = age;
this.height = height;
this.weight = weight;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public int getWeight() {
return weight;
}
public void setWeight(int weight) {
this.weight = weight;
}
}
public class Student extends Person{
private String studentId;
private int grade;
private double gpa;
public Student(String name, int age, int height, int weight, String studentId, int grade, double gpa) {
super(name, age, height, weight); //자신의 부모가 가진 생성자를 사용하겠다. 부모의 변수들을 초기화함
this.studentId = studentId;
this.grade = grade;
this.gpa = gpa;
}
public String getStudentId() {
return studentId;
}
public void setStudentId(String studentId) {
this.studentId = studentId;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
public double getGpa() {
return gpa;
}
public void setGpa(double gpa) {
this.gpa = gpa;
}
public void Show() {
System.out.println("-------------------------------");
System.out.println("이름: "+this.getName());
System.out.println("나이: "+this.getAge());
System.out.println("키: "+this.getHeight());
System.out.println("몸무게: "+this.getWeight());
System.out.println("학번: "+this.getStudentId());
System.out.println("학년: "+this.getGrade());
System.out.println("학점: "+this.getGpa());
}
}
'JAVA > STUDY' 카테고리의 다른 글
9. 인터페이스 (0) | 2020.09.11 |
---|---|
8. 추상 / Final (0) | 2020.09.10 |
6. 반복문과 재귀함수 (팩토리얼, 피보나치) (0) | 2020.09.09 |
5. 입력 / 파일 입력 (0) | 2020.09.09 |
4. 조건문 & 반복문 (0) | 2020.09.08 |