자바 3

상속과 메모리 구조

Guitar 클래스가 Instrument 클래스를 상속받는 상황을 가정해보자. public class Instrument { public void play() { System.out.println("악기를 연주합니다."); } } public class Guitar extends Instrument { @Override public void play() { System.out.println("기타를 연주합니다!"); } } 그리고 Guitar 객체를 생성한다. public class InheritanceMain { public static void main(String[] args) { Guitar guitar = new Guitar(); guitar.play(); } } 이 때 Guitar 객체가 참조..

java 2023.12.21

자바 main 메소드는 왜 static일까?

자바의 main 메소드는 static이 붙은 정적 메소드이다. public static void main(String[] args) {...} 왜 main 메소드에 static이 붙었을까? ⛏ static 메소드 static 메소드는 정적 메소드, 클래스 메소드라고도 하는데 객체 생성 없이 클래스로부터 바로 호출이 가능하다. 유틸리티성 메소드에 자주 사용된다. static 메소드는 메소드 영역에 존재하며 클래스로 접근하여 사용할 수 있다. public class StaticMethodMain { public static void main(String[] args) { int a = 30; // 클래스로 바로 접근 int result = StaticMethod.calculate(a); System.out...

java 2023.12.19

생성자

⛏ 생성자 생성자는 객체 생성 직후 객체에 초기값을 할당하는 메소드이다. 특징 1. 생성자 이름은 클래스 이름과 동일해야 한다. 2. 생성자는 반환 타입을 가지지 않는다. class Member { String name; int age; // 생성자(constructor) Member(String name, int age) { this.name = name; this.age = age; } } 생성자는 인스턴스를 생성한 후 즉시 호출된다. 즉, new 키워드를 통해 인스턴스를 생성한 후 즉시 생성자가 호출되어 객체에 초기값을 할당한다. Member member = new Member("dragon", 20); 왜 쓰나? 객체에 값을 넣어주는 메소드를 만드는 대신 생성자를 사용하는 이유가 무엇일까? 1. ..

java 2023.12.12