오늘은 항해99 사전준비를 하기 위해 학교에서 다 배운거지만 개발을 안한지 꽤 시간이 흘러서 다시 Java 객체지향 프로그래밍 개념에 대해 복습하고 내 자신을 재점검하고자 스파르타 코팅클럽에서 제공한 강의를 다시 수강해 보았다.
클래스 - 표현하고자 하는 대상의 공통 속성을 한 군데에 정의해 놓은것
맴버변수 - 클래스 내부의 정보를 의미
인스턴스 - 클래스로부터 만들어진 객체(new로 생성)
메소드 - 특정 작업을 수행하기 위한 명령문의 집합
생성자 - 클래스의 인스턴스를 생성할때 불리는 초기화 메소드, return값이 없다
상속 - 기존 클래스를 재사용하는 방식, 코드와 클래스가 많아질수록 관리가 용이하다는 장점이 있다. extends로 부모 클래스를 상속한다. 주로 UML다이어그램을 사용하여 나타낸다.
상속의 특징
메소드 오버로딩 - 한 클래스내에서 동일한 이름의 메소드를 여러개 가지는 것. 메소드의 이름과 리턴 타입이 같다면 매개변수의 갯수 또는 타입이 달라야 한다. 메소드의 이름과 매개변수의 타입 및 갯수가 같지만 리턴타입이 다르다면 오버로딩으로 여기지 않는다.
메소드 오버라이딩 - 부모 클래스에서 상속받은 메소드를 자식 클래스에서 재정의해서 덮어버리는 것.
접근제어자 - 멤버변수/함수 혹은 클래스에 사용되며 외부에서의 접근을 제한하는 역할, 캡슐화를 돕는 하나의 도구
접근제어자 종류
추상클래스 - 추상클래스를 상속한 클래스에서 완성되도록 미리 설계해주는 클래스로써, 객체를 생성할 수 없다.
인터페이스 - 다른 클래스를 작성하는데 도움을 주는 설계도
서로 다른점
위 블로그에서 가져온 다이어그램(이해하기 쉽게 표현되어 있다>_<)