전체 글(67)
-
다형성
Polymorphism(다형성) - 동일한 메시지에 대하여 다르게 반응하는 성질 - 동일한 코드가 대입된 인스턴스에 따라 다른 메소드를 호출하는 것 - 참조형 변수가 프로퍼티나 메소드에 접근할 때는 생성자를 가지고 판단하는것이 아니고 변수를 만들때 사용한 클래스를 가지고 판단함. * 단 하나의 예외는 오버라이딩된 메소드. 오버라이딩된 메소드는 변수를 만들 때 사용한 클래스를 가지고 판단하지 않고 인스턴스를 생성할 때 호출한 생성자를 가지고 판단함. 이것을 가지고 다형성을 구현.
2020.04.20 -
참조형 변수의 대입
참조형 변수의 대입 - 자료형은 기본형과 참조형으로 구분 - 기본형은 하나의 데이터만 저장 - 참조형은 0개 이상의 데이터를 묶어 heap에 할당하고 그 참조를 저장 - 기본형 변수에 참조형 데이터를 저장 못하고 반대도 불가능 - 기본형의 경우 boolean을 제외 형변환을 이용해 서로 간 대입 가능 - 참조형은 상속관계인 경우만 서로 다른 자료형 간 대입 가능 상위 클래스 타입으로 만들어진 변수에 하위 클래스 타입의 인스턴스 참조를 형 변환없이 대입 가능 하위 클래스 타입으로 만들어진 변수에 상위 클래스 타입의 인스턴스 참조는 강제 형 변환없이는 대입 불가 강제 형 변환하고자 하는 인스턴스가 하위 클래스 타입의 생성자를 호출해서 만들어진 경우는 문제 없지만 이외의 경우는 예외 발생
2020.04.20 -
Super
Super - 하위 클래스의 인스턴스 메소드(static이 붙지 않은 메소드)에서 상위 클래스의 인스턴스를 가리키는 포인터 - super.을 하게 되면 상위 클래스에서 만든 것들이 보여지게 된다. - 상위 클래스와 하위 클래스에 동일한 이름의 프로퍼티나 메소드가 있는 경우 하위 클래스의 메소드에서 상위 클래스의 프로퍼티나 메소드를 호출하기 위해서 사용 super(매개변수) - 하위 클래스의 생성자에서 상위 클래스의 생성자를 호출하는 방법 - 하위 클래스의 생성자에는 코드를 작성하지 않아도 상위 클래스의 디폴트 생성자를 호출하는 super()가 가장 위에 있는것으로 간주함. - 직접 super()를 호출하면 기본적으로 제공되는 super()는 없어짐. - 상위 클래스의 디폴트 생성자가 없는 경우 상속을 받..
2020.04.20 -
Package
Package - 관련있는 클래스와 인터페이스의 집합 - 자바에서 배포의 최소 단위 - 독립적으로 실행되는 단위는 메소드인데, 자바는 메소드만 단독으로 생성할 수 없어서 클래스 안에 메소드를 만들고 클래스들을 하나의 파일(패키지)에 저장할 수 있다. - 일반적으로 자바에서는 파일 단위로 배포하지 않고 패키지 단위로 배포. - 디렉토리와 유사하지만 디렉토리는 아님. package 이름 규칙 - 처음 2개,3개는 회사 도메인이나 이메일 주소를 이용 - 마지막은 기술 이름이나 프로젝트 이름 - 모두 소문자로 기술하는것을 권장함 - 자바 패키지는 jar 파일로 압축해서 배포 - jar파일은 자바에서는 압축을 해제하지 않고 바로 사용 가능 - tar는 linux나 unix(apple)에서 압축 표준 1) 자바 프..
2020.04.20 -
생성자
Constructor(생성자) - 인스턴스를 생성할 때 호출하는 특별한 메소드 규칙 1) 이름은 반드시 클래스 이름과 동일하게 생성2. 2) 클래스 안에 만들지 않아도 자신의 상위 클래스 생성자를 호출하는 매개변수가 없는 생성자가 1개 제공 생성자를 직접 만들면 자동으로 만들어진 생성자는 소멸. - 생성자는 반환값 없음(리턴 타입 없음) - 생성자도 overloading 가능 - 생성자는 new를 이용해서 호출해야 하고, 생성자는 heap에 메모리 할당을 한 후 그 참조를 리턴. - 생성자를 정의하는 목적은 대부분 property의 초기화. * 드물게 인스턴스가 만들어질 때 다른 작업을 수행하도록 하기 위해서도 생성 [인스턴스 생성] 클래스이름 인스턴스이름 = new 생성자(매개변수) // new하고 클..
2020.04.17 -
메소드 오버로딩, 오버라이딩
**Method Overloading(메소드 중복 정의) - 하나의 클래스에 메소드 이름은 간고 매개변수의 개수나 자료형이 다른 메소드가 존재하는 경우. - 메소드를 호출할 때 대입한 매개변수를 보고 실행할 메소드를 결정. **Method Overriding(메소드 재정의) - 상위 클래스에 존재하는 메소드를 하위 클래스에서 재정의 하는것. - 오버로딩은 이름은 같은데 매개볒수의 개수나 자료형이 다른 것이고, 오버라이딩은 이름, 매개변수의 개수 및 자료형도 동일. - 목적은 상위 클래스에서 제공되는 메소드의 기능이 부족해서 기능을 추가하는 것. - 상위 클래스의 메소드의 내용이 존재하는 경우라면 반드시 상위 클래스의 메소드를 호출해주어야함. - 메소드의 기능이 파괴하는 것이라면 자신의 코드를 먼저 작성하..
2020.04.17