2024/12 56

[Java] 자바 Object 클래스

개요모든 클래스의 최상위 부모 클래스이다.자바에서 모든 클래스는 암묵적으로 Object 클래스를 상속 받는다.즉, 자바에서 직접 상속을 명시하지 않더라도 모든 클래스는 Object를 상속 받는다.이를 통해 모든 객체는 Object 클래스에서 정의된 기본적인 메서드를 사용할 수 있다. 자바에서 Object 클래스는 여러 중요한 메서드를 제공하며, 이를 통해 모든 객체가 공통으로 사용할 수 있는 동작을 정의할 수 있다.Object 클래스에서 제공하는 주요 메서드는 다음과 같다.메서드설명equals(Object obj)객체 비교. 기본적으로 참조 비교를 하지만 오버라이드 가능hashCode()객체의 해시 코드 반환. equals()와 함께 오버라이드 필요toString()객체를 문자열로 반환. 오버라이드하여 ..

[Java] 자바 제한자

개요제한자(Access Modifiers)는 클래스, 메서드, 변수 등의 접근 범위를 제한하는 키워드이다.이를 통해 캡슐화(Encapsulation)를 구현하고, 안전한 코드를 작성할 수 있다. 자바에는 4가지 주요 접근 제한자가 있다.접근 제어자동일 클래스동일 패키지다른 패키지 (상속)다른 패키지 (비상속)public✅✅✅✅private✅❌❌❌protected✅✅✅❌default✅✅❌❌ 그 외 제한자로는 abstract, final, static이 존재한다.키워드사용 목적abstract- 추상 클래스와 추상 메서드를 정의할 때 사용- 자식 클래스에서 구현하도록 강제final- 변수: 값 변경을 방지- 메서드: 오버라이드 방지- 클래스: 상속 방지static- 클래스 변수/메서드: 인스턴스화 없이 클래스..

[Java] 자바 package, import

개요🔹 패키지(Package)란?패키지는 관련된 클래스들을 묶어놓은 폴더(디렉터리) 구조이다.클래스를 논리적으로 그룹화하여 이름 충돌을 방지하고, 코드를 관리하기 쉽게 만든다.자바에서는 클래스 파일이 많아질 경우 패키지를 사용해 정리한다.폴더 구조와 패키지 이름이 일치해야 한다.🔹 임포트(Import)란?다른 패키지의 클래스를 사용하려면 import 문을 사용해야 한다.같은 패키지에 있는 클래스는 import 없이 바로 사용 가능하다. 패키지의 장점 이름 충돌 방지: 같은 이름의 클래스가 다른 패키지에서 존재할 수 있음.코드 재사용: 필요한 패키지를 가져와 사용 가능.코드 관리 용이: 논리적으로 관련된 클래스를 하나로 묶어 관리.보안성: 패키지를 사용해 클래스의 접근 제어를 설정할 수 있음 (publ..

[Java] 자바 객체지향 프로그래밍

개요자바는 기본적으로 객체지향 프로그래밍 언어이다.객체란 주체가 아닌, 주체가 활용하는 것을 의미한다.우리 주변에 있는 모든 것으로 사물, 개념, 논리 등 프로그래밍의 대상이 된다. 객체지향 프로그래밍은 주변의 많은 것들을 객체화 하여 프로그래밍 하는것을 말한다.예를 들어 게임을 할 때 자신의 캐릭터는 하나의 객체가 되어 상태를 갖고 동작을 한다.  장점블록 형태의 모듈화된 프로그래밍을 통해 신뢰성 높은 프로그래밍이 가능하다.추가, 수정, 삭제에 용이하여 객체에 대한 관리를 쉽게할 수 있다.재사용성이 높아 작업의 반복을 줄여 수고로움을 줄여준다.또한 실제 세계와 유사한 모델링이 가능하다.  현실과 프로그램의 객체현실의 객체가 갖는 속성과 기능은 추상화되어 클래스에 정의된다.클래스는 구체화 되어 프로그램의..

[G5] 백준 11729번 하노이 탑 이동 순서 C++ 재귀

리뷰 https://www.acmicpc.net/problem/11729기본적인 재귀 문제인 하노이 탑의 이동 순서 문제, 경로를 체크해야 하므로 직접 재귀를 돌려야 한다.  전역 변수n : 옮겨야 할 원판의 개수를 저장할 변수path : 원판을 옮기는 순서를 저장하기 위한 pair타입의 벡터 함수1. hanoivoid hanoi(int n, int from, int to, int aux) 재귀를 통해 1번 장대에서 3번 장대로 원판을 모두 옮기기 위한 함수매개변수로 옮길 원판의 개수 n, 시작 지점 from, 도착 지점 to, 임시 장대 aux를 매개변수로 받는다.기저 조건으로 원판이 한개만 남은 경우 path에 from, to를 추가해 주고 리턴해 준다.n - 1개의 원판을 to를 임시 장대로 사용해..

[G1] 백준 6213번 Balanced Lineup C++ 세그먼트 트리

리뷰 https://www.acmicpc.net/problem/6213구간 최대값 - 최소값을 출력하는 문제, 다국어 문제라 영문으로 되어있다. 지문이 짧아 이해하긴 쉬웠다.  전역 변수N : n의 최대값을 정의하기 위한 정수형 상수 변수n : 소의 개수를 저장하기 위한 변수q : 쿼리의 개수를 저장하기 위한 변수nodes : 소의 높이를 저장하기 위한 정수형 배열Mintree : 소의 높이 기준으로 구간 최소값을 저장하기 위한 세그먼트 트리Maxtree : 소의 높이 기준으로 구간 최대값을 저장하기 위한 세그먼트 트리MM : 쿼리문 탐색 시 최소 및 최대값을 저장하기 위해 필요한 변수를 정의한 구조체 함수1. buildvoid build(int node, int s, int e) 세그먼트 트리 초기 상..

[Java] 자바 생성자, this

생성자객체를 생성할 때 호출하는 메서드이다.new 키워드와 함께 호출되는 함수를 의미한다.일반 멤버 변수의 초기화나 객체 생성 시 실행돼야 하는 작업의 정리이다. ✅ 생성자의 특징클래스 이름과 동일해야 한다.반환 타입이 없으며, void조차 사용하지 않는다.오버로딩이 가능하여 매개변수의 개수나 타입에 따라 여러 개의 생성자를 정의할 수 있다.생성자를 정의하지 않으면 컴파일러가 기본 생성자(매개변수가 없는 생성자)를 자동으로 추가한다.생성자는 호출 시 new 키워드와 함께 사용한다.🔄 생성자 오버로딩 (Constructor Overloading)class Car { String model; int year; // 기본 생성자 public Car() { this.model..

[Java] 자바 메서드

개요현실의 객체가 하는 동작을 프로그래밍화 한 것을 메서드라고 한다.어떤 작업을 수행하는 명령문의 집합으로 볼 수 있다. 반복적으로 사용되는 코드의 중복 방지를 위해 메서드를 사용한다.이를 통해 프로그램의 재사용성을 높여 코드의 양을 줄일 수 있고 유지 보수가 용이하다. 주로 말하는 함수가 메서드라고 볼 수 있다.즉, 어떤 값을 입력 받아서 작업을 진행하고 결과를 돌려주는 역할을 한다.입력을 받는 것과 결과를 돌려주는 것은 생략할 수 있다.[접근제어자] [static] 반환타입 메서드이름(매개변수) { // 메서드 본문 (로직) return 반환값; // 반환타입이 void면 return 생략 가능} 메서드는 위와 같은 형태로 정의한다.  선언부메서드를 호출한 곳으로 반환되는 값의 타입을 정..

[Java] 자바 변수의 선언 위치에 따른 분류

개요자바는 기존에 다루었던 내용 처럼 우선 타입에 따른 분류를 할 수 있다.[Java] 자바 변수 타입, 타입 변환 [Java] 자바 변수 타입, 타입 변환개요변수란 자료를 저장하기 위한 메모리 공간으로 탑입에 따라 크기가 달라진다.메모리 공간에 값을 할당한 후 사용한다. 변수 타입, 형이란 데이터의 형태로 나타내며 데이터 타입에 따라 크zzzz955.tistory.com 그 외에 배열, 문자열, 객체 등 가변적으로 크기가 변할 수 있는 변수가 존재한다.또한 선언 위치에 따라 분류를 할 수 있다.  멤버 변수 (필드, 인스턴스 변수)클래스 블록 안에서 메소드 밖에 선언된 변수로 객체(인스턴스) 생성 후 사용할 수 있다.생성된 각 객체마다 독립적인 값을 가진다. 초기화하지 않으면 기본값으로 초기화가 되며,..

[Java] 자바 JVM 메모리 구조

개요JVM(Java Virtual Machine)은 자바 프로그램이 실행될 때 메모리를 관리하고 운영하는 가상의 머신이다.JVM의 메모리 구조는 크게 5가지 영역으로 나뉜다.메소드(Method) 영역힙(Heap) 영역스택(Stack) 영역PC 레지스터(PC Register)네이티브 메소드 스택(Native Method Stack)🎯 JVM 메모리 구조 흐름클래스 로딩 – 메소드 영역에 클래스 정보 로드객체 생성 – 힙 영역에 객체 생성 (new 연산자)메소드 실행 – 스택에 메소드 호출 정보 저장PC 레지스터 – 현재 실행 중인 명령어 추적네이티브 메소드 호출 – 네이티브 메소드 스택에서 처리이 중 메소드, 힙, 스택 영역에 대해서 알아보자  메소드(Method) 영역정적(Static) 메모리 영역으로..

728x90