Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- java 애노테이션
- javatime
- ai활용법
- javautil패키지
- java 패키지
- 티스토리챌린지
- java 제네릭
- java final 키워드
- java 람다식
- 생성형AI
- gpt활용팁
- import 키워드
- java
- binraytree
- java super메소드
- java_this
- asyncawait
- java 추상 클래스
- JAVA데이터타입
- this키워드
- java objact클래스
- 오블완
- 창의적도구
- java스터디
- javascript
- java 메서드 오버라이딩
- 화살표연산자
- Java 자료구조
- java 이진트리
- java반복문
Archives
- Today
- Total
코딩쿠의 코드 연대기
Java 클래스 본문
학습목표
- 클래스 정의하는 방법
- 객체 만드는 방법(new 키워드)
- 메소드 정의하는 방법
- 생성자 정의하는 방법
- this 키워드
클래스 정의하는 방법
클래스란?
객체를 만들기 위한 설계도 또는 틀 같은 것, 즉 클래스는 구현하고자 하는 객체의 속성과 기능들을 정의하는 설계도 따라서, 속성은 변수로, 기능은 메서드 (함수)로 나타냅니다.
객체지향 언어 : https://kuderi21.tistory.com/8
<클래스 정의하는 방법.>
<구조>
class 클래스명{
// 속성(변수)
// 기능(메서드)
}
* 클래스명은 앞 글자 대문자로 *
class ClassA {
// 맴버 변수 (속성)
String name;
int age;
// 메서드 (동작)
void f1(){
System.out.println("f1()");
}
}
public class Person {
// 멤버 변수 (속성)
String name;
int age;
// 메서드 (동작)
public void sayHello() {
System.out.println("안녕하세요, 저는 " + name + "입니다.");
}
}
객체 만드는 방법 (new 키워드)(인스턴스화)
인스턴스(Instance)
: 클래스를 통해 만들어진 형태
인스턴스화?
: 클래스를 통해 실제 사용 가능한 객체를 생성하는 과정
클래스로 객체를 만든다?
-> 클래스로 객체 값을 만들어서 메모리를 할당(new)하고, 객체 값을 생성(클래스명())해서, 변수에 저장
자료형 참조변수 = new 클래스명();
자료형 객체변수 = new 클래스명();
public static void main(string[] args){
ClassA ca = new ClassA();
Person person1 = new Person(); // Person 클래스의 객체 생성
person1.name = "홍길동"; // 객체의 속성에 값 할당
person1.age = 20;
person1.sayHello(); // 객체의 메서드 호출
}
메소드 정의하는 방법
Java에서 메소드를 정의하는 방법은 다음과 같습니다.
접근제어자 반환타입 메소드이름(매개변수) {
// 메소드 내용
return 반환값; // 반환값이 있는 경우
}
각 구성 요소에 대한 설명:
- 접근 제어자: 메소드에 대한 접근 권한을 설정합니다.
public
: 모든 곳에서 접근 가능private
: 같은 클래스 내에서만 접근 가능protected
: 같은 패키지 또는 하위 클래스에서 접근 가능- (default): 같은 패키지에서만 접근 가능
- 반환 타입: 메소드가 실행 후 반환하는 값의 데이터 타입을 지정합니다.
void
는 반환값이 없음을 의미합니다. - 메소드 이름: 메소드를 식별하는 이름입니다.
- 매개변수: 메소드를 호출할 때 전달되는 값들을 저장하는 변수입니다.
- 메소드 내용: 메소드가 수행하는 작업을 기술합니다.
- return 문: 메소드의 실행을 종료하고, 반환값이 있는 경우 해당 값을 반환합니다.
예시:
public class Calculator {
// 두 정수를 더하는 메소드
public int add(int num1, int num2) {
int sum = num1 + num2;
return sum;
}
// 문자열을 출력하는 메소드
public void printMessage(String message) {
System.out.println(message);
}
}
메소드 호출:
public class Main {
public static void main(String[] args) {
Calculator calculator = new Calculator();
int result = calculator.add(5, 3); // add 메소드 호출
System.out.println(result); // 출력: 8
calculator.printMessage("Hello, world!"); // printMessage 메소드 호출
}
}
추가 정보:
- 메소드 오버로딩: 같은 이름의 메소드를 여러 개 정의할 수 있습니다. 단, 매개변수의 개수 또는 타입이 달라야 합니다.
- 가변 인자: 메소드에 전달되는 인자의 개수가 가변적인 경우 사용합니다.
- 재귀 호출: 메소드 내에서 자기 자신을 호출하는 것을 의미합니다.
출처
- 메소드(method) - 코딩의 시작, TCP School
- [JAVA/자바] 메소드(method) 정의(선언 및 호출) - 네이버 블로그
- [자바/JAVA] 메소드(method)란? - velog
Java에서 생성자를 정의하는 방법
class 클래스이름 {
// 멤버 변수
// 생성자
클래스이름(매개변수) {
// 멤버 변수 초기화
}
}
생성자의 특징:
- 클래스 이름과 동일: 생성자의 이름은 클래스 이름과 반드시 같아야 합니다.
- 반환 타입 없음: 생성자는 반환값이 없으므로
void
를 사용하지 않습니다. - 객체 생성 시 자동 호출:
new
연산자로 객체를 생성할 때 자동으로 호출됩니다. - 멤버 변수 초기화: 객체 생성 시 멤버 변수를 초기화하는 데 사용됩니다.
- 오버로딩 가능: 매개변수의 개수나 타입이 다르도록 여러 개의 생성자를 정의할 수 있습니다.
예시:
class Person {
String name;
int age;
// 기본 생성자
Person() {
this.name = "이름 없음";
this.age = 0;
}
// 매개변수를 갖는 생성자
Person(String name, int age) {
this.name = name;
this.age = age;
}
}
생성자 사용 예시:
public class Main {
public static void main(String[] args) {
// 기본 생성자를 사용하여 객체 생성
Person person1 = new Person();
System.out.println(person1.name + ", " + person1.age); // 출력: 이름 없음, 0
// 매개변수를 갖는 생성자를 사용하여 객체 생성
Person person2 = new Person("홍길동", 20);
System.out.println(person2.name + ", " + person2.age); // 출력: 홍길동, 20
}
}
추가 정보:
- this 키워드: 생성자 내에서 현재 객체를 참조할 때 사용합니다.
- 기본 생성자: 클래스에 생성자를 명시적으로 정의하지 않으면 컴파일러가 자동으로 기본 생성자를 생성합니다.
- 생성자 호출 순서: 상속 관계에서 부모 클래스의 생성자가 먼저 호출된 후 자식 클래스의 생성자가 호출됩니다.
출처
- 생성자(constructor) - 코딩의 시작, TCP School
- [JAVA/자바] 생성자(Constructor)와 초기화 - 네이버 블로그
- 4. Java 자바 - 클래스의 구성 멤버 [ 생성자 ] - Kephi Javatory - 티스토리
this 키워드
Java에서 this
키워드는 현재 객체(인스턴스)를 참조하는 데 사용됩니다. 쉽게 말해, this
는 "자기 자신"을 가리키는 키워드라고 생각하면 됩니다.
this
키워드의 주요 용도:
- 멤버 변수와 지역 변수의 이름이 같을 때 구별하기:
- 메소드 내에서 매개변수 또는 지역 변수의 이름이 멤버 변수의 이름과 같을 경우, 멤버 변수를 참조하기 위해
this
를 사용합니다.
- 메소드 내에서 매개변수 또는 지역 변수의 이름이 멤버 변수의 이름과 같을 경우, 멤버 변수를 참조하기 위해
class Person {
String name;
void setName(String name) {
this.name = name; // this.name은 멤버 변수 name을 의미
}
}
- 생성자에서 다른 생성자를 호출할 때:
- 생성자 내에서
this()
를 사용하여 같은 클래스의 다른 생성자를 호출할 수 있습니다. - 이때,
this()
는 생성자의 첫 번째 줄에 위치해야 합니다.Java
- 생성자 내에서
class Person {
String name;
int age;
Person() {
this("이름 없음", 0); // 다른 생성자 호출
}
Person(String name, int age) {
this.name = name;
this.age = age;
}
}
- 현재 객체를 반환할 때:
- 메소드에서 현재 객체 자신을 반환해야 하는 경우
this
를 사용합니다. - 이는 메소드 체이닝을 가능하게 합니다.
- 메소드에서 현재 객체 자신을 반환해야 하는 경우
class Person {
String name;
int age;
Person setName(String name) {
this.name = name;
return this; // 현재 객체 반환
}
Person setAge(int age) {
this.age = age;
return this;
}
}
위 예시에서 setName()
과 setAge()
메소드는 this
를 반환하므로 다음과 같이 메소드 체이닝을 사용할 수 있습니다.
Person person = new Person();
person.setName("홍길동").setAge(20);
참고:
this
는 인스턴스 메소드와 생성자 내에서만 사용할 수 있습니다.- static 메소드에서는
this
를 사용할 수 없습니다.
출처
'코딩스터디 > JAVA스터디' 카테고리의 다른 글
객체지향 프로그래밍 (OOP) (5) | 2024.11.10 |
---|---|
Java 자료구조) ArrayList, LinkedList (Stack, Queue) (2) | 2024.11.09 |
Java 조건문, Java 반복문 (6) | 2024.11.03 |
Java 연산자 (2) | 2024.10.26 |
자바 데이터 타입, 변수 그리고 배열 (2) | 2024.10.19 |