Java 54

Java) static 키워드의 이해와 활용 예제

static 키워드란?: static은 정적을 의미하며, 클래스 로딩 시 메모리에 올라가며 프로그램이 종료될 때까지 존재한다. 특징 :    공유 : 클래스의 모든 객체가 동일한 static 변수와 메서드를 공유한다.    인스턴스 생성 없이 접근 가능 : 클래스 이름으로 직접 호출할 수 있다.static 메서드 접근 방법public class MainClass { public static void main(String[] args) { MyClass.staticNumber = 10; // 객체 생성 없이 사용 가능 MyClass.static_method(); }}class MyClass{ int number; public static int staticNumbe..

Java 2025.01.09

Java) final 키워드: 변수, 메서드, 클래스 제약 이해하기

final 변수 : 상수화: final 키워드를 변수에 사용하면, 해당 변수는 상수화되어 값을 변경할 수 없다.public class MainClass { public static void main(String[] args) { final int number = 10; // 변수 -> 상수(final 붙이면) // number = 20; // 불가능(상수라서) }}: final 변수를 초기화한 뒤에는 값을 변경할 수 없다.: 상수로 사용되는 경우, 변수 이름을 대문자로 작성하는 것 낫다.ex) final int MAX = 100;추가 예제public class MainClass { public static void main(String[] args) { ..

Java 2025.01.09

Java) 인터페이스와 다중 상속 예제 코드

interface(인터페이스): 추상 메서드로만 구성되어 있다.: 다중 상속이 가능하다.: 빠르게 클래스 설계 또는 구성의 파악이 가능 추상 메서드와 차이점 :추상 메서드 : : 추상 메서드 + 일반 메서드 + 멤버변수: 다중 상속이 안됨 인터페이스 : :추상 메서드만 가능: 다중상속 가능public class MainClass { public static void main(String[] args) { // MyInterface myInter = new MyInterface(); // 이렇게 생성 불가능 MyClass cls = new MyClass(); cls.abMethod(); // 위 코드와 동일한 결과 값 MyInter..

Java 2025.01.09

Java) 추상 클래스와 추상 메서드의 이해 및 활용 예제

abstract class : 추상 클래스: 추상 메서드를 하나 이상 포함하고 있는 클래스 abstract method : 추상 함수: 함수의 내용은 없고 proto type 만 선언되어 있는 함수// 일반함수public void method(){ 처리}// 추상함수public abstract void method(int n, double d);: 추상함수는 무조건 상속한다. 상속한 클래스에서 추상 메서드를 정의해 준 후에 사용이 가능하다.: 추상함수 형태를 proto type(사양) 이라고 한다.proto type이 뭐냐?라고 묻는다면 : 리턴값은 int와 double이고 리턴값은 void이다.추상 클래스와 메서드 사용법public class MainClass { public static v..

Java 2025.01.09

Java) 객체지향 프로그래밍 : 상속성 및 다형성(3)

다형성과 생성자 호출: 부모 클래스 매개변수 생성자 호출 방법 public class MainClass { public static void main(String[] args) { Parent par = new Child(); }}: 부모 타입 참조 변수(par)가 자식 클래스(child)의 객체를 참조: 다형성을 통해 부모 클래스의 메서드만 접근 가능public class Parent { private int number; public Parent(){ System.out.println("Parent 기본생성자"); } public Parent(int number) { this.number = number; System...

Java 2025.01.09

Java) 객체지향 프로그래밍 : 상속성 및 다형성(2)

파일 구조하나의 인스턴스를 사용한 예public class MainClass { public static void main(String[] args) { // Dog + Cat = 10(두 개의 인스턴스를 사용) Dog dogArr[] = new Dog[10]; Cat catArr[] = new Cat[10]; // 이렇게 작성하면 코드가 많이 복잡해짐.(크기가 커지면 커질수록) dogArr[0] = new Dog(); catArr[0] = new Cat(); catArr[1] = new Cat(); dogArr[1] = new Dog(); // 이건 dog랑 cat for..

Java 2025.01.08

Java) 객체지향 프로그래밍 : 상속성 및 다형성

상속성(inheritance) : : 부모 클래스로부터 속성 or 특성을 상속받는 것: variable(변수), method(함수)를 물려받는 것: 다중 상속은 불가능하다! 형식 :        class 부모클래스명{             부모변수             부모메소드         }         class 자식클래스 extends 부모클래스명{             (부모변수)             (부모메소드) -> 우리눈엔 보이지 않지만 내려와있는 것이다.             자식변수             자식메소드        }간단한 예제로 사용 형식 보기public class MainClass { public static void main(String[] args) { ..

Java 2025.01.08

Java) 생성자(constructor)와 객체 생성 및 초기화

생성자(constructor)란?: 클래스 이름과 동일한 이름을 가진 메서드: 반환 타입이 없다.(void도 쓰지 않음): 객체가 생성될 때 자동으로 호출되며, 객체 초기화를 담당: 오버로딩(Over Loading)이 가능하며, 여러 개의 생성자를 정의할 수 있다.MainClass : 실행 클래스로, 프로그램의 시작점MyClass : 사용자 정의 클래스로, 데이터와 메서드를 포함public class MyClass { private int number; private String name; private double height;}: 3개의 필드(멤버 변수)를 가지고 있다.: 생성자는 객체를 생성할 때 이 필드들을 초기화한다.매개변수가 없는 생성자(기본 생성자)import cls.MyCl..

Java 2025.01.06

Java) 메서드 오버로딩과 가변 인수

1 . 메서드 오버로딩 (Method Overloading) : 같은 이름의 메서드를 매개변수의 자료형이나 개수를 다르게 정의하는 방식: 이렇게 하면 메서드 이름이 동일해도 매개변수에 따라 서로 다른 기능을 수행할 수 있다.public class MainClass { public static void main(String[] args) { MyClass cls = new MyClass(); cls.method(); cls.method('A'); cls.method(1); cls.method('D', 22); cls.method(123, 'S'); }}class MyClass{ void method(){ ..

Java 2025.01.06