개인공부/Java
-
this 메서드와 this()메서드 클래스의 외부에서 멤버(필드, 메서드, 이너 클래스)를 호출하기 위해서는 객체를 먼저 생성한 후 '참조 변수명.멤버명'의 형태로 호출하지만 클래스 내부에서는 개체의 생성 없이 필드와 메서드를 바로 사용할 수 있다고 했다. 하지만 모든 사용할 수 있는 상태의 멤버는 항상 객체 속에서만 존재한다. 그렇다면 어떻게 클래스 내부에서는 객체를 생성하지 않고 바로 필드와 메서드를 사용할 수 있을까? 내부 객체 참조 변수명인 this 키워드 우리는 클래스 내부에서도 객체 안의 멤버를 사용해 왔다. 즉 '참조 변수명. 멤버명'의 형태를 사용해 온 셈이다. 다만 객체를 직접 만들지 않은 것 뿐이다. 모든 메서드에는 자신이 포함된 클래스의 객체를 가리키는 this라는 참조 변수가 있다...
내부 객체 참조 변수명인 thisthis 메서드와 this()메서드 클래스의 외부에서 멤버(필드, 메서드, 이너 클래스)를 호출하기 위해서는 객체를 먼저 생성한 후 '참조 변수명.멤버명'의 형태로 호출하지만 클래스 내부에서는 개체의 생성 없이 필드와 메서드를 바로 사용할 수 있다고 했다. 하지만 모든 사용할 수 있는 상태의 멤버는 항상 객체 속에서만 존재한다. 그렇다면 어떻게 클래스 내부에서는 객체를 생성하지 않고 바로 필드와 메서드를 사용할 수 있을까? 내부 객체 참조 변수명인 this 키워드 우리는 클래스 내부에서도 객체 안의 멤버를 사용해 왔다. 즉 '참조 변수명. 멤버명'의 형태를 사용해 온 셈이다. 다만 객체를 직접 만들지 않은 것 뿐이다. 모든 메서드에는 자신이 포함된 클래스의 객체를 가리키는 this라는 참조 변수가 있다...
2022.07.18 -
메서드 오버로딩을 이해하기 위해서는 먼저 메서드 시그너처mathod signature의 의미를 알아야 한다. 메서드 시그너처는 메서드명과 입력매개변수의 자료형을 말한다. 시그너처(서멍)라는 말에서 유추할 수 있듯이 메서드를 구분하는 기준 역할을 한다. 자바 가상 머신은 메서드 시그너처가 다르면 메서드명이 동일해도 다른 메서드로 인식한다. 메서드 오버로딩 method overloading 은 이러한 특징을 이용한 것으로 입력매개변수의 개수나 자료형이 다른 여러 개의 동일한 이름을 지닌 메서드를 같은 공간에 정의하는 것을 말한다. 🐯메서드 오버로딩 리턴 타입 메서드명 (자료형 변수명, 자료형 변수명,...) { } // 메서드명, 자료형, 자료형 -> 메서드 시그너처 예 int sum(int a, int b..
메서드 오버로딩메서드 오버로딩을 이해하기 위해서는 먼저 메서드 시그너처mathod signature의 의미를 알아야 한다. 메서드 시그너처는 메서드명과 입력매개변수의 자료형을 말한다. 시그너처(서멍)라는 말에서 유추할 수 있듯이 메서드를 구분하는 기준 역할을 한다. 자바 가상 머신은 메서드 시그너처가 다르면 메서드명이 동일해도 다른 메서드로 인식한다. 메서드 오버로딩 method overloading 은 이러한 특징을 이용한 것으로 입력매개변수의 개수나 자료형이 다른 여러 개의 동일한 이름을 지닌 메서드를 같은 공간에 정의하는 것을 말한다. 🐯메서드 오버로딩 리턴 타입 메서드명 (자료형 변수명, 자료형 변수명,...) { } // 메서드명, 자료형, 자료형 -> 메서드 시그너처 예 int sum(int a, int b..
2022.07.18 -
메서드는 클래스의 기능에 해당하는 요소다. 예를 들어 사람 클래스라면 먹기, 잠자기, 공부하기, 자동차 클래스라면 전진하기, 후진하기, 회전하기 등이 메서드로 구성될 것이다. 먼저 메서드 정의의 문법적 구조를 살펴보자. 🍄메서드의 정의 자바 제어자 리턴(빤환) 타입 메서드명(입력매개변수) { 메서드 내용 } 예 public static int sum(int a, int b) { // 메서드 내용 } // public, static - 자바 제어자 int - 리턴(반환) 타입 리턴 타입은 메서드 종료 이후 변환(또는 반환)되는 값의 자료형을 의미한다. 메서드명은 변수명 선정 규칙과 동일하며 관례적으로 소문자로 시작한다. 이후 소괄호 안에는 입력 매개 변수가 들어오는데, 이는 메서드를 호출할 때 전달되는 값..
클래스 내부 구성 요소 : 메서드메서드는 클래스의 기능에 해당하는 요소다. 예를 들어 사람 클래스라면 먹기, 잠자기, 공부하기, 자동차 클래스라면 전진하기, 후진하기, 회전하기 등이 메서드로 구성될 것이다. 먼저 메서드 정의의 문법적 구조를 살펴보자. 🍄메서드의 정의 자바 제어자 리턴(빤환) 타입 메서드명(입력매개변수) { 메서드 내용 } 예 public static int sum(int a, int b) { // 메서드 내용 } // public, static - 자바 제어자 int - 리턴(반환) 타입 리턴 타입은 메서드 종료 이후 변환(또는 반환)되는 값의 자료형을 의미한다. 메서드명은 변수명 선정 규칙과 동일하며 관례적으로 소문자로 시작한다. 이후 소괄호 안에는 입력 매개 변수가 들어오는데, 이는 메서드를 호출할 때 전달되는 값..
2022.07.18 -
필드field는 '클래스에 포함된 변수'로 객체의 속성값을 지정할 수 있다. 필드는 지역 변수(local variable)와 구분해야 한다. 지역 변수는 '메서드에 포함된 변수'를 말한다. 즉, 필드와 지역 변수는 어떤 중괄호 안에 선언됐는지에 따라 구분할 수 있다. 클래스의 중괄호 안에 선언된 변수를 '필드', 메서드의 중괄호 안에 선언된 변수를 '지역 변수'라고 생각하면 된다. 필드와 지역 변수의 가장 큰 차이점은 생성되는 메모리의 위치다. 필드는 힙 메모리의 객체 내부, 지역 변수는 스택 메모리에 생성된다. 스택 메모리에 저장되는 변수는 때가 되면 자바 가상 머신이 자동으로 삭제하지만, 힙 메모리의 객체 안에 저장되는 필드는 객체가 사라지지 않는 한 절대로 삭제되지 않는다. 그렇다면 스택 메모리의 ..
클래스의 내부 구성 요소 : 변수필드field는 '클래스에 포함된 변수'로 객체의 속성값을 지정할 수 있다. 필드는 지역 변수(local variable)와 구분해야 한다. 지역 변수는 '메서드에 포함된 변수'를 말한다. 즉, 필드와 지역 변수는 어떤 중괄호 안에 선언됐는지에 따라 구분할 수 있다. 클래스의 중괄호 안에 선언된 변수를 '필드', 메서드의 중괄호 안에 선언된 변수를 '지역 변수'라고 생각하면 된다. 필드와 지역 변수의 가장 큰 차이점은 생성되는 메모리의 위치다. 필드는 힙 메모리의 객체 내부, 지역 변수는 스택 메모리에 생성된다. 스택 메모리에 저장되는 변수는 때가 되면 자바 가상 머신이 자동으로 삭제하지만, 힙 메모리의 객체 안에 저장되는 필드는 객체가 사라지지 않는 한 절대로 삭제되지 않는다. 그렇다면 스택 메모리의 ..
2022.07.18 -
변수 : 다양한 형태의 데이터를 저장하기 위해 각각의 데이터를 저장할 수 있는 변수라는 문법 요소를 만들어 사용했다. 배열 : 데이터의 종류가 많아질수록 데이터의 개수만큼 변수명을 짓거나 관리하는 일이 버거워졌다. 이런 문제를 해결하기 위해 만든 문법 요소가 '배열'이다. 배열을 사용하면 같은 자료형인 변수들을 묶어 1개의 새로운 자료형으로 관리할 수 있으므로 관리해야 할 변수의 개수를 현저하게 줄일 수 있다. 구조체 : 배열은 같은 자료의 자료형만 묶을 수 있으므로 반 학생들의 성적(int)과 반 평균(double)은 1개의 배열로 관리할 수 없다. 한 반의 성적 데이터를 한 번에 관리하면 훨씬 효율적일 텐데 말이다. 이를 보완하기 위해 만든 문법 요소가 '구조체struct'다. 구조체를 사용하면 서로..
클래스와 객체변수 : 다양한 형태의 데이터를 저장하기 위해 각각의 데이터를 저장할 수 있는 변수라는 문법 요소를 만들어 사용했다. 배열 : 데이터의 종류가 많아질수록 데이터의 개수만큼 변수명을 짓거나 관리하는 일이 버거워졌다. 이런 문제를 해결하기 위해 만든 문법 요소가 '배열'이다. 배열을 사용하면 같은 자료형인 변수들을 묶어 1개의 새로운 자료형으로 관리할 수 있으므로 관리해야 할 변수의 개수를 현저하게 줄일 수 있다. 구조체 : 배열은 같은 자료의 자료형만 묶을 수 있으므로 반 학생들의 성적(int)과 반 평균(double)은 1개의 배열로 관리할 수 없다. 한 반의 성적 데이터를 한 번에 관리하면 훨씬 효율적일 텐데 말이다. 이를 보완하기 위해 만든 문법 요소가 '구조체struct'다. 구조체를 사용하면 서로..
2022.07.18 -
문자열을 저장하는 String 참조 자료형의 가장 대표적인 형태는 '클래스'다. 이번에는 자바가 제공하는 클래스 중 문자열을 저장하는 String 클래스를 알아보자. 이미 앞에서도 몇 가지 형태의 문자열을 써봤겠지만, 자바에서 가장 많이 쓰는 자료형 중 하나다. 문자열의 표현과 객체 생성 문자열은 반드시 큰따옴표(String a = "문자열")안에 표기해야 한다. 큰따옴표 안에는 String a = ""와 같이 아무런 문자열이 오지 않아도 상관없다. 하지만 큰따옴표는 절대 생략할 수 없다. String 클래스의 객체를 생성하는 데는 크게 2가지 방법이 있다. 첫 번째 방법은 new 키워드를 사용하는 방법으로 생성자의 입력매개변수로 저장할 문자열을 입력한다. 🐧String 클래스의 객체 생성 방법 1 아직..
참조 자료형 String문자열을 저장하는 String 참조 자료형의 가장 대표적인 형태는 '클래스'다. 이번에는 자바가 제공하는 클래스 중 문자열을 저장하는 String 클래스를 알아보자. 이미 앞에서도 몇 가지 형태의 문자열을 써봤겠지만, 자바에서 가장 많이 쓰는 자료형 중 하나다. 문자열의 표현과 객체 생성 문자열은 반드시 큰따옴표(String a = "문자열")안에 표기해야 한다. 큰따옴표 안에는 String a = ""와 같이 아무런 문자열이 오지 않아도 상관없다. 하지만 큰따옴표는 절대 생략할 수 없다. String 클래스의 객체를 생성하는 데는 크게 2가지 방법이 있다. 첫 번째 방법은 new 키워드를 사용하는 방법으로 생성자의 입력매개변수로 저장할 문자열을 입력한다. 🐧String 클래스의 객체 생성 방법 1 아직..
2022.07.18