이번 시간에는 Java의 생성자에 대해서 알아보겠습니다. 먼저 Main 클래스의 main 함수에는 다음과 같은 내용이 있습니다. "chogahui" 라는 이름을 가진 Dog 객체를 생성한 다음에, 생성한 Dog 객체가 barking합니다. 즉, 제 강아지가 barking 이라는 기능만을 수행한 것입니다. 이제 Dog 클래스를 봅시다. 먼저, String을 매개변수로 넘긴 Dog 생성자는 made a object라는 내용을 출력합니다. 그리고, 해당 객체의 name과 age를 초기화 합니다. 다음에, barking 메서드는 bark라는 내용만 출력합니다. 그러면, 위 프로그램의 출력 결과가 어떻게 나올까요? made a object가 먼저 출력이 되고, bark가 출력이 됩니다. 이를 통해서, 우리는 Do..
코딩/Java 검색 결과
인스턴스를 생성했습니다. 예를 들어, MyCar 객체라면 MyCar a = new MyCar(); 이런 식으로 생성했을 거에요. 그러면, 우리는, a.run()과 같은 메소드를 호출할 수 있을 거에요. 그런데, a.run 메서드 안에서, 자기 자신을 참조하려면 어떻게 해야 할까요? 영어 시간으로 돌아가 봅시다. 지시 대명사 중에서 this, that. 이런 것들이 있어요. 이 중에 this는 이것 이라는 뜻을 가져요. Mycar a = new MyCar(); 를 호출하면, 힙에 인스턴스 변수들이 생성이 됩니다. 그리고 a는 힙에 생성된 무언가를 가리키고 있을 겁니다. 여기서 차 이름에 맞게 부속품들을 setting 한다고 생각해 봅시다. 이 일을 MyCar 클래스가 다 해버리면 힘들 거에요. 차는 달리고..
이제 슬슬 OOP를 배워보도록 하겠습니다. ArrayList는 동적 배열입니다. 이 클래스 내부에 있는 변수들을 봅시다. elementData와 size입니다. elementData는 ArrayList의 실제 데이터들을 저장해 놓은 배열입니다. 그리고, size는 배열 리스트의 크기를 의미합니다. 이 둘을 가지고 어떠한 연산을 할 수 있을까요? 기능 중 하나인 add입니다. 이 함수 내에서, size와 elementData를 쓰고 있다는 것을 알 수 있어요. 그러면, 필드인 size와 실제 데이터를 담아두는 배열인 elementData. 이것과 기능인 add를 묶었나요? 즉, 메소드와 필드들을 하나로 묶었다고 할 수 있어요. 그러면 이들이, arrayList라는 클래스 안에 wrapping 되어 있다고도..
오늘은 Java의 객체, 클래스에 대해서 알아보도록 하겠습니다. 돌아 돌아 여기까지 오기는 했는데. OOP의 컨셉을 5 ~ 7편에 걸쳐서 잡도록 하겠습니다. 클래스는 설계도, 객체는 설계도 대로 만들어진 실체로 생각하시면 편한데요. 예제 프로그램을 보면서 이해해 보도록 하겠습니다. 조금 쉬운 예제가 뭐가 있을까요? 자판기를 예로 들어 봅시다. 실제로 자판기는, 물건이 여러 개가 있고, 물건이 없는 경우도 처리를 해야 합니다만. 여기에서는 간단하게, 물건은 셀 수 없을 정도로 너무 많이 있고, 1가지 물건만 판다고 해 봅시다. 그러면 우리는 자판기가 해야 할 일을 2가지로 요약할 수 있을 겁니다. get_item과 put_money 이렇게 2개로요. 그러면 자판기의 상태는 어떻게 표현하면 좋을까요? 일단,..
java에서 static 필드에 대해서 배웠습니다. 그러면, 함수 앞에도 static을 붙일 수 없을까요? 이를 정적 함수, 혹은 static 함수라고 하는데요. 예를 들어보겠습니다. 저는 myClass 클래스를 선언했습니다. 그리고, main 함수에서 myClass.foo()를 호출하고 있습니다. 그래도 될까요? 네. 일단 된다고 합니다. 일반 메서드와 다른 것은, 일반 메서드 (instance method) 는 객체.xxx(); 로 호출을 했습니다. 그런데, 이것은 class 이름.xxx();로 호출을 했다는 점이 다릅니다. 이게 왜 그렇게 될 수 있는지는 나중에 다시 이야기 해 드리도록 하겠습니다. 지금은 그냥, 아. 클래스 이름.함수명() 으로 호출할 수 있는 게 정적 함수구나. 정도만 짚고 넘어..
최근댓글