java 42

[국비][JAVA] 불변 객체 String의 동일성/동등성

[동등성과 동일성 비교]동일성 (==)동등성 (equals)- 객체 '주소값' 비교- 논리적인 객체 내용 비교※ String은 euqals를 사용(오버라이딩 되어 있음) [String의 리터럴과 객체 생성 비교]리터럴("winter")객체 생성(new String("winter"))- 상수 (문자열) 풀에 저장- 같은 주소값 공유- 객체 생성으로 각자의 주소값이 생김- 다른 주소값 공유  [예제 코드]public class S1Main { public static void main(String[] args) { Object obj = new Object(); Object obj2 = new Object(); System.out.println("객체 비교(동일성)..

Java/[국비] JAVA 2024.06.03

[국비][JAVA] 인터페이스와 추상(abstract) 차이

구분추상 클래스 (Abstract Class)추상 메서드 (Abstract Method)인터페이스 (Interface)정의추상 메서드를 하나 이상 포함하거나 abstract로 선언된 클래스구현부 없이 선언만 있는 메서드추상 메서드와 상수만으로 구성된 형태목적관련 있는 클래스들의 공통적인 특징을 추출하고 상속을 통해 재사용성 증가하위 클래스에서 반드시 구현해야 할 메서드 명세 정의관련 없는 클래스들이 특정 기능을 공유하도록 함관계IS-A 관계 (상속 관계)IS-A 관계 (상속 관계)HAS-A 관계 (구현 관계)구현추상 메서드는 하위 클래스에서 반드시 구현해야 함하위 클래스에서 반드시 구현해야 함인터페이스를 구현하는 클래스에서 추상 메서드 구현해야 함메서드 종류- 추상 메서드- 일반 메서드- 생성자추상 메서..

용어/java 2024.06.02

[국비][JAVA] 상속과 다형성 이해 예시

▶ 다형성 사용 이유 및 순수 추상클래스https://zoooom-in.tistory.com/62 [김영한_자바기본][11. 다형성2] 다형성 사용 이유 및, 순수 추상 클래스(p.1-20)1. 다형적 참조 / 메서드 오버라이딩을 통해 각자 다른 타입을 모두 동일화하여 중복을 제거할 수 있다. 2. 추상 클래스 : 상속을 목적으로 사용되고, 부모 클래스 역할을 담당, 인스턴스 존재X 3.zoooom-in.tistory.com ▶ 상속과 메모리 구조https://zoooom-in.tistory.com/61 [김영한_자바기본][10. 다형성1] 상속과 메모리 구조(p.1-23)1. 자식 객체를 부모 참조 변수에 할당하면 부모 메서드에 접근이 가능하다. 2. 다운캐스팅은 '일시적으로' 부모 타입의 참조 변수를..

Java/[국비] JAVA 2024.06.02

[국비][JAVA] this 이해하기

this는 자기 자신을 부르는 이름표와 같음즉 객체 생성 후 메서드 호출 시, 메서드 내에서 this는 호출된 객체를 가리킴this 키워드- this 키워드는 현재 객체를 참조하는 역할- 클래스 내에서 this를 사용하여 객체의 필드와 메서드를 참조- 객체 생성 후 메서드를 호출하면, 해당 메서드 내에서 this는 호출된 객체를 가리킴※ this 키워드는 마치 자기 자신을 부르는 이름표와 같음ex) momCar.info()를 호출하면, info 메서드 안에서 this는 momCar를 가리킴      > 이는 info 메서드가 momCar의 속성과 메서드를 사용할 수 있게 합니다. [예시코드]public class Ex3Main { public static void main(String[] args)..

Java/[국비] JAVA 2024.05.30

[국비][JAVA] 메서드 오버로딩, 오버라이딩 차이

메서드 오버로딩메서드 오버라이딩- 동일 클래스 내 메서드 이름을 같게 선언- 매개변수의 개수, 타입, 순서가 다를 시 적용- 반환 타입이 달라도 오버로딩으로 간주되지 않음 - 컴파일 타임에 어떤 메서드가 호출될지 결정됨- 상속 관계에서 발생- 부모 클래스의 메서드를 자식 클래스에서 재정의- 메서드의 이름, 매개변수, 반환 타입이 동일- 다형성을 실현하여 런타임에 객체의 타입에 따라 적절한   메서드를 호출할 수 있음 [메서드 오버로딩 예시 코드]class MathUtils { // 매개변수의 개수가 다른 경우 int add(int a, int b) { return a + b; } // 매개변수의 타입이 다른 경우 double add(double a, double b..

용어/java 2024.05.30

[국비][JAVA] 참조값 및 객체 이해하기_예시

▶ 기본형 / 참조형 이해https://zoooom-in.tistory.com/45 [김영한_자바기본][2.기본형과 참조형] 기본형 / 참조형 이해 (p.1-6)참조값에 접근한다는 것은 설계도와 부지 위치에 접근해서 같이 공동 작업을 하는 것이다. 기본형은 실제 값이 저장되어 독립적으로 관리되지만, 참조형은 변수에는 객체 위치(참조값)가 저장zoooom-in.tistory.com ▶ 기본형 / 참조형 - 메서드에 객체 반환https://zoooom-in.tistory.com/66 [김영한_자바기본][2. 기본형과 참조형] (보충) 메서드에 객체 전달 / 메서드에서 객체 반환 / NullPo▶ 1. 클래스와 데이터 : 클래스 생성 + 클래스의 이해 https://zoooom-in.tistory.com/65..

용어/java 2024.05.30

[국비][JAVA] Class, Object이해_심화 예시

▶ Class, Object 이해https://zoooom-in.tistory.com/105 [국비][JAVA] Class, Object이해▶ 클래스 도입 및 객체 이해하기https://zoooom-in.tistory.com/43 [김영한_자바기본][1.클래스와 데이터] 클래스 도입, 객체 이해하기(인스턴스) (p.15-23)Class는 설계도로, 객체(인스턴스)는 설계도를 구현zoooom-in.tistory.com 각 배열 요소에 Student 객체를 생성하여 할당해야 함- 이를 통해 배열 요소가 null이 아닌 실제 객체를 참조하기 때문- 초기화: 배열 생성 시 각 요소는 null- 이는 아직 객체가 생성되지 않았다는 뜻- null 상태에서는 객체의 필드나 메서드에 접근할 수 없음- 데이터 저장: 각..

Java/[국비] JAVA 2024.05.29

[국비][JAVA] Class, Object이해

▶ 클래스 도입 및 객체 이해하기https://zoooom-in.tistory.com/43 [김영한_자바기본][1.클래스와 데이터] 클래스 도입, 객체 이해하기(인스턴스) (p.15-23)Class는 설계도로, 객체(인스턴스)는 설계도를 구현한 설계툴로 보자 정보 참조는 설계툴을 통해 이루어지며, 입력 전까지는 설계툴에는 원본(설계도면) 위치만 뜬다. [코드 읽기 전, 이해 도모를zoooom-in.tistory.com  클래스가 필요한 근본적인 이유는 다양한 데이터 타입을 하나의 묶음으로 보고 관리하기 위함이다.    ⇒ 하나의 데이터 타입(Class)으로 만들 수 있다.  Class(클래스) : 설계도Object(객체) : 실제 구현물- 자동차 설계 도면, 구상물1) [인스턴스/멤버 변수] 변수(속성)..

Java/[국비] JAVA 2024.05.29

[국비][JAVA] 배열 이해 및 기본형, 참조형 기본 값

[배열 선언]int[] ar = new int[3];- 크기가 3인 int 배열을 선언하고, 초기화- int형이 아닌 int형 배열이라고 부름 [메모리 구조 상]스택 영역힙 영역- ar 변수 자체는 스택 메모리에 저장- ar 변수 자체는 배열의 주소값(참조값)을 가지고 있음- new int[3]은 힙 메모리에 저장-  메모리에는 세 개의 int 값이 저장될 공간이 할당됨    (4byte) [인스턴스 변수 기본값]public class Example { int num; // 기본값 0 String str; // 기본값 null int[] array = new int[3]; // 각 요소는 기본값 0} >> 메모리 구조상 [기본형 기본값]public class Primitive { p..

용어/java 2024.05.28

[국비][JAVA] 자바 메모리 영역

▶ 참고 (자바 메모리와 static 구조)https://zoooom-in.tistory.com/57 [김영한_자바기본][7. 자바 메모리 구조와 static] 자바 메모리 구조 이해 / 스택과 큐 자료 구조(p.1-메서드 영역: 프로그램의 클래스 정보와 정적 변수를 저장하는 공간 힙 영역: 동적으로 생성되는 객체들을 저장하는 공간 스택 영역: 메서드 호출 및 파라미터를 임시로 저장하는 공간 **메인 메zoooom-in.tistory.com  특징저장되는 데이터스택 영역 (Stack)- 메서드 호출과 관련된 지역 변수 및 매개 변수 저장- 메서드 호출이 끝나면 자동으로 메모리에서 제거- LIFO(Last In First Out) 구조를 따름※ Main 메서드 부분 생각 / 메서드 호출- 지역 변수- 매개..

용어/java 2024.05.28