Java42 ArrayList Array는 생성 시에 그 크기를 정해야 합니다. 물론 크기를 늘릴 방법이 있기는 하지만 데이터 양이 많을 수록 작업이 쉽지 않게 됩니다. 배열과 유사하면서도 크기를 자동으로 조절해 주는 도구가 바로 ArrayList입니다. 자동으로 크기가 조절되기 때문에 배열 생성 시의 크기를 정하지 않아도 됩니다. private ArrayList myArrayList = new ArrayList(); ArrayList는 다른 타입의 변수들 선언과 모양이 살짝 다른데요, 안에 type of Object를 명시해주면 됩니다. 맨 뒤에 ()는 empty constructor인데, ArrayList가 class 이기 때문에 자신만의 constructor를 가지고 있는 것이라고 합니다. 보시다시피 안에 들어갈 데이터 .. 2022. 5. 3. Array-배열 배열은 동일한 타입의 변수들을 하나의 묶음으로 다룰 수 있도록 해주는 도구입니다. 일일이 변수를 만들지 않고도 많은 양의 데이터를 다룰 수 있기 때문에 상당히 편리하죠! 배열의 선언과 생성 배열을 선언하고 생성하는 방법은 다양한데, 많이 사용되는 몇가지 방법들은 다음과 같습니다. 1 2 3 4 //배열 선언 int[] arr; //배열 생성 arr = new int[5]; cs 하지만 보통은 생성과 배열을 한 번에 진행합니다. 1 2 //배열 선언과 생성을 한번에 int[] arr = new int[5]; cs 아래와 같이 생성 시에 데이터를 같이 생성할 수도 있습니다. (이 방법은 배열 변수를 선언할 당시에만 가능한 방법입니다.) 1 2 int[] arr = {1,2,3,4,5}; cs 또 많이 사용되.. 2022. 5. 2. Class(7)-Up-casting & Down-casting (형변환 업캐스팅, 다운캐스팅) 지난번 ploymorphism에 대해 이야기 했을 때 up-casting이라는 용어가 나왔습니다. Up-casting은 자손 타입을 조상 타입으로 형변환하는 것을 의미합니다. 반대로 down-casting은 조상 타입에서 자손 타입으로의 형변환을 의미합니다. 한 번 도표로 살표보면 이렇게 나타낼 수 있습니다. (도표 추가) Class 간의 casting은 서로 상속관계에 있는 클래스 사이에서만 가능합니다. 그렇지만 Up-casting(자손->조상)은 항상 가능하지만 down-casting(조상->자손)은 문제를 일으킬 수 있습니다. 그 이유는 조상 클래스와 자손 클래스가 가지고 있는 인스턴스의 수* 때문입니다. 자손 클래스는 조상 클래스를 상속하였기 때문에 조상 클래스의 인스턴스를 모두 상속받게 되죠? .. 2022. 5. 1. Class(6)-Polymorphism(다형성) 이번에는 class의 핵심 요소 중 하나인 Polymorphism(다형성, 多形性)에 대해서 알아보겠습니다. 다형성이라는 특성 때문에 부모 클래스 타입의 참조변수로 자식 클래스의 인스턴스를 참조할 수가 있습니다. 지금까지 클래스 타입의 참조변수를 만들 때는 참조변수의 타입과 인스턴스 타입이 일치했습니다. 예를 들어서, 1 2 Movie movie = new Movie(); ForrestGump forrestGump = new ForrestGump(); cs 위와 같은 형태였습니다. 하지만 다형성을 이용하면, 두 클래스가 상속관계라는 전제 하에 부모 클래스의 참조변수로 자식 클래스 인스턴스를 참조할 수가 있습니다. (여기에서는 Movie class 가 부모 클래스, ForrestGump가 자식 클래스 입니.. 2022. 4. 29. Class(5)-Encapsulation(캡슐화)란? 사용 방법과 이유 OOP에는 inheritance, encapsulation, polymorphism, abstraction 이라는 네가지 핵심개념이 있습니다. Encapsulation도 이 핵심 개념 중 하나에 해당하는데요, 어떠한 의미일까요? 먼저 이름에서 느껴지다시피 무언가 안에 담아 두는 것 같다는 생각이 듭니다. 실제로 encapsulation은 class 내부의 variable(data)들을 method로 감싸서 variable과 method를 하나의 유닛으로 묶어주는 것입니다. 이렇게 되면 variable에 접근하기 위해서는 method를 통할 수 밖에 없게 됩니다. 하나의 유닛으로(capsule) variable를 감싸놓는 이유는 다른 클래스에서 variable에 즉, 데이터에 직접적으로 접근하는 것을 방지.. 2022. 4. 28. Class(4)-Composition Composition이란 Inheritance(상속)가 class간 부모-자식 관계를 만들어 주었다면, Composition(조합)은 class 들끼리 서로의 구성요소가 될 때 각 class가 가진 fields나 methods를 사용할 수 있도록 하는 방법입니다. "has a" 관계일 때 사용한다고 말하기도 하는데요 (inheritance는 "is a" 관계). 예를 들어서, 고양이와 눈(eyes)의 관계는 무엇일까요? 고양이가 눈을 가지고 있다 (A cat has eyes) 라고 할 수 있겠죠. 고양이가 눈이거나 눈이 고양이인 것은 아닙니다(is a 관계가 아니라는 말입니다). 그러므로 이런 경우에는 inheritance를 사용하기보다는 composition을 사용해야 적절합니다. 이번에는 한 번 Co.. 2022. 4. 27. 이전 1 ··· 3 4 5 6 7 다음 반응형