본문 바로가기
SMALL

Java267

this키워드(this.)와 this()메소드 안녕하세요, 코린이의 코딩 학습기 채니 입니다. 개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다. ☞ this 키워드 (this.) 클래스의 외부에서 멤버(필드, 메소드, 이너클래스)를 호출 하기 위해선 반드시 객체를 생성한 후 호출해야 했습니다. 하지만, 같은 클래스 내에서는 객체 생성 없이 호출 할 수 있었습니다. 다만! 사용 가능한 멤버는 항상 객체 속에서만 존재합니다. 그렇다면 어떻게 객체 생성 없이 사용할 수 있었을까요? 모든 메소드에는 자신이 포함된 클래스 객체를 가리키는 this라는 참조 변수가 있습니다. 다만, this.을 생략하면 JVM이 자동으로 생성해주기 때문에 클래스 내부에서 필드와 메소드를 그대로 사용할 수 있었던 것이죠. (단, 지역변수는 멤버가 아니므로 thi.. 2022. 3. 17.
생성자) 기본 생성자, 파라미터 생성자, 생성자 오버로딩, this() 안녕하세요, 코린이의 코딩 학습기 채니 입니다. 개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다. 생성자란? - 객체를 생성하는 역할을 지님 생성자의 특징 - 반드시 클래스명과 동일한 이름 - 리턴 타입이 없음 - 아무 생성자도 작성하지 않은 경우, JVM이 기본 생성자를 생성하여 호출 기본 생성자가 필요한 이유 - 상속 시 자식 클래스에서 부모 클래스의 기본 생성자를 자동으로 호출 (없으면 오류!) - spring framework에서 빈 생성 시 기본 생성자를 호출 생성자는 new 연산자를 통해 호출 되는 메소드로, 메모리에 객체 할당 후 필드 값 초기화 목적으로 사용합니다. User u1 = new User(); User : 클래스(타입) u1 : 참조변수명 User() : 생성자.. 2022. 3. 17.
메소드) 재귀 메소드 (Recurison) 안녕하세요, 코린이의 코딩 학습기 채니 입니다. 개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다. ☞ 재귀 메소드(Recurison) - 메소드 안에서 현재 메소드를 다시 호출하는 것 - 종료 조건을 반드시 명시해야 함 public class RecursionStudy { public static void main(String[] args) { RecursionStudy study = new RecursionStudy(); study.test1(5); } //종료 조건 미설정 public void test1(int a) { System.out.println(a); test1(a-1); } } @콘솔출력값 Exception in thread "main" java.lang.StackOver.. 2022. 3. 17.
메소드) call by value, call by reference 안녕하세요, 코린이의 코딩 학습기 채니 입니다. 개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다. ☞ call by value 10의 값을 갖고 있는 변수를 만들어 test1의 매개인자로 넘겨주었습니다. public class CallByValueReferenceStudy { public static void main(String[] args) { CallByValueReferenceStudy study = new CallByValueReferenceStudy(); int a = 10; study.test1(a); System.out.println("a = " + a); } public void test1(int n) { n *= 30; System.out.println("n = " +.. 2022. 3. 17.
메소드) 메소드 오버로딩, 메소드 시그니처란? 안녕하세요, 코린이의 코딩 학습기 채니 입니다. 개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다. 메소드 오버로딩이란? (Method Overloading) - 한 클래스 안에서 동일한 이름의 메소드를 여러개 선언 - 단, 메소드 시그니처가 달라야함 메소드 시그니처(Method Signature)란? - 메소드명, 입력매개변수의 자료형 한 클래스 안에서 동일한 메소드명을 가진 메소드를 여러개 선언할 수 없습니다. 다만, 동일한 메소드명이여도 메소드 시그니처가 다르면 JVM은 다른 메소드로 인식하게 되어 오류가 나지 않습니다. 즉 메소드 오버로딩을 한 줄로 정의하자면, '입력 매개변수의 개수, 자료형, 순서가 다른 여러 개의 동일한 이름을 지닌 메소드를 정의하는 것'입니다. //메소드 오.. 2022. 3. 17.
메소드) 인스턴스 메소드, static 메소드 안녕하세요, 코린이의 코딩 학습기 채니 입니다. 개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다. ☞ 인스턴스 메소드 - 반드시 객체 생성 후에 사용 가능 public class MethodStudy1 { public static void main(String[] args) { MethodStudy1 study = new MethodStudy1(); study.test1(); } public void test1() { System.out.println("instance 메소드"); } } @콘솔출력값 instance 메소드 멤버/인스턴스 필드와 마찬가지로 인스턴스(멤버)메소드 또한 객체 생성 후 사용할 수 있습니다. ☞ static 메소드 - 객체 생성 없이도 사용 가능 (클래스명으로 .. 2022. 3. 17.
LIST