Java
[자바] 오버라이드(Override)
오버라이드(Override)? 부모 클래스에 있는 메소드를 자식 클래스에서 재정의 하는 것이다. 자식 클래스가 부모 클래스를 상속하여 자식에게 없는 메소드를 호출하면 부모클래스에 가서 해당 메소드를 찾게 된다. 만약 부모 클래스의 메소드를 자식클래스에서 동일한 이름으로 다시 재정의 하면 부모클래스의 메소드를 찾지 않고 자식 클래스의 메소드를 호출하게 된다. 이것을 오버라이드(Override) 또는 재정의 라고 한다. 오버라이딩의 조건 오버라이딩이란 메소드의 동작만을 재정의 하는 것이므로, 메소드의 선언부는 기존 메소드와 완전히 같아야 한다. 하지만 메소드의 반환 타입은 부모 클래스의 반환 타입으로 타입 변환할 수 있는 타입이라면 변경할 수 있다. 부모 클래스의 메소드보다 접근 제어자를 더 좁은 범위로 변..
[자바] 캐스팅-업캐스팅, 다운캐스팅
캐스팅(Casting)? 캐스팅이란 타입을 변환하는 것을 말하며 형변환 이라고도 한다. 자바의 상속 관계에 있는 부모와 자식 클래스 간에 간의 형변환이 가능하다. 업캐스팅(Upcasting) 업캐스팅이란 자식 클래스의 객체가 부모 클래스 타입으로 형변환 되는 것을 말한다. Parent l ChildParent형의 객체를 생성하고자 할 때 Child형의 정보를 좌변에 제공하는 것이다. Parent p = new Child();즉 업캐스팅이란, 하위 클래스의 정보를 담을수 있는 객체에 상위클래스의 자료형을 부여해서, 상위클래스처럼 사용하게 하는 것이다. 아래 코드에서 부모 클래스는 Parent, 자식 클래스는 Child이다. Parent p = c; 부분이 업캐스팅한 부분이다. p가 Child 객체를 가리키..
[자바] ArrayList 란?
ArrayList란 객체 배열을 구현한 클래스 이다. List 인터페이스를 상속받은 클래스로 크기가 가변적으로 변하는 선형리스트이다. 일반적인 배열과 같은 순차리스트이며 인덱스로 내부의 객체를 관리한다는 점 등이 유사하지만 한번 생성되면 크기가 변하지 않는 배열과는 달리 ArrayList는 객체들이 추가되어 저장 용량을 초과한다면 자동으로 부족한 크기만큼 저장용량이 늘어난다는 특징을 가지고 있다. java.util 패키지에서 제공되는 ArrayList 기존의 배열 선언과 사용 방식은 배열의 길이를 정하고 요소의 개수가 배열의 길이보다 커지면 배열을 재할당하고 복사해야 했음 배열의 요소를 추가하거나 삭제하면 다른 요소들의 이동에 대한 구현을 해야 함 ArrayList는 객체 배열을 좀 더 효율적으로 관리하..
![[자바] 접근 제어자](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpehyR%2FbtrNb7SKjTd%2FynM5uYKrze8VRgQaOWYUOk%2Fimg.png)
[자바] 접근 제어자
제어자(modifier) 제어자(modifier)란 클래스와 클래스 멤버의 선언 시 사용하여 부가적인 의미를 부여하는 키워드를 의미한다. 자바에서 제어자는 접근 제어자(access modifier)와 기타 제어자로 구분할 수 있다. 기타 제어자는 경우에 따라 여러 개를 함께 사용할 수도 있지만, 접근 제어자를 두 개 이상 같이 사용할 수는 없다. 이러한 접근 제어자와 기타 제어자는 조합에 따라 함께 사용할 수 있다. 접근 제어자 객체 지향에서 정보 은닉이란 사용자가 굳이 알 필요가 없는 정보는 사용자로부터 숨겨야 한다는 개념이다. 그렇게 함으로써 사용자는 언제나 최소한의 정보만으로 프로그램을 손쉽게 사용할 수 있다. 자바에서는 이러한 정보 은닉을 위해 접근 제어자(accses modifier)라는 기능을..