본문 바로가기

Study/Java

(12)
[Java] 생성자와 this 생성자 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메소드이다. 특징은 다음과 같다. 리턴 값이 없다. 메소드 이름이 클래스의 이름과 같다. 만약 생성자가 없다면, 컴파일러가 기본 생성자를 자동으로 추가해준다. 생성자에서 다른 생성자 호출하기 - this 생성자 이름으로 클래스 이름 대신 this 사용하기. 다른 생성자 호출 시 반드시 첫 줄에서만 가능. class Car { String color; String gear; int door; // 생성자의 오버로딩 같은 느낌이 든다. Car(){ this("white", "auto", 4); } Car(String color, String gear, int door){ this.color = color; this.gear = gear; this.door..
[Java] 오버로딩 오버로딩 하나의 클래스 내에 같은 이름의 메소드를 여러 개 정의하는 것이다. 하나의 이름을 가진 메소드에 여러 가지 기능을 과적(overloading)한 것이라고 생각하면 된다. 오버로딩의 조건 메소드의 이름이 같고, 매개변수의 개수와 타입이 달라야 한다. 이름이 같아도 매개 변수로 구분이 가능해지기 때문에 오버 로딩이 성립하는 것이다. 오버로딩의 예시 println 메소드가 대표적인 예이다! 데이터 타입에 따라 오버로딩 된 메소드들 중 하나가 실행된다. void println(int x); void println(String x); 오버로딩의 장점 이름을 고민할 필요가 없어진다. 같은 기능을 하는데 파라미터가 다양한 경우, 오버로딩이 불가능하다면각자 다 다른 이름을 정해야 할 것이다. 이 문제를 해결해..
[Java] 변수와 메소드 변수와 메소드 변수의 종류 클래스 변수 클래스가 메모리에 올라갔을 때 생성 모든 인스턴스가 공통된 저장공간(변수)를 공유 인스턴스 변수 앞에 static을 붙이면 OK ⇒ static int width = 100; 인스턴스 변수 인스턴스 생성 시 생성 인스턴스마다 다른 값을 가지는 경우 지역 변수 클래스 이외의 영역 (메소드, 생성자) 변수 선언문 수행 시 생성 메소드 선언과 구현 반환타입 이름(파라미터) { ... //메소드 구현부 return -1 // 반환 값은 최대 1개 } int add(int x, int y) { int result = x + y; return result; } 반환 값이 없는 경우? 반환 타입으로 void를 주면 된다. JVM의 메모리 구조 JVM은 프로그램 수행에 필요한 메..
[Java] 클래스와 객체 클래스와 객체 클래스는 객체를 생성하기 위한 하나의 틀이며, 설계도이다. 설계도를 잘 짜면 쉽고 빠르게 좋은 제품을 생산할 수 있듯, 클래스를 잘 짜놓으면 객체를 쉽고 빠르게 만들어 낼 수 있다. 객체와 인스턴스 클래스로 부터 객체를 만들어 내는 과정을 인스턴스화라고 한다. 그 클래스로 부터 만들어진 객체는 인스턴스라 한다. 만약 rpg 게임이 있다고 하자. 신규 가입 유저가 존재할 때 캐릭터 생성을 누르면, 미리 설계해둔 Chracter라는 클래스를 통해 해당 유저의 캐릭터가 생성된다. 여기서 생성된 캐릭터가 인스턴스가 되는 것이다. 객체의 구성요소 property: 변수 (특성, 필드, 상태) ⇒ 인스턴스마다 다른 속성을 가질 수 있다. function: 메소드 (함수, 행위) ⇒ 모든 인스턴스에 대..