Langauge

    [Java] this키워드와 this() 메서드

    this. 키워드 자신이 포함된 클래스의 객체를 가리키는 역할을 하며 this. 키워드를 통해 인스턴스 변수에 접근할 수 있다. 일반적으로 키워드를 생략하면 컴파일러가 자동으로 추가한다. 생략하면 컴파일러가 자동으로 추가하는데 그럼 언제 사용할까? -> 메서드를 선언한 후 매개변수와 인스턴스 변수의 이름이 동일할 때 구분하기 위하여 사용된다. class Cat { String name; int age; double weight; public Cat(String name, int age, double weight) { // 생성자를 통해서 인스턴스를 초기화할 때 // 매개변수와 인스턴스 변수를 구분하기 위해 this. 키워드 사용 this.name = name; this.age = age; this.wei..

    [Java] 생성자

    생성자란 생성자란 인스턴스 변수들을 초기화하는 역할을 지닌 클래스의 내부 구성 요소로 new 키워드와 함께 쓰여 인스턴스를 생성한다. 생성자의 이름은 반드시 클래스명과 동일해야 한다. 생성자는 리턴 타입이 존재하지 않는다. 기본 생성자와 매개변수가 있는 생성자 기본 생성자 : 매개변수가 없는 생성자 기본 생성자란 매개변수가 없는 생성자를 의미함. 모든 클래스는 생성자를 포함하고 있어야 한다. 따라서 클래스 내부에 생성자가 없을 경우 컴파일러가 자동으로 추가함. // 기본 생성자 구조 클래스명(){ ... } class Person() { public Person() {} // 기본 생성자 } class Person() { ... // public Person() {} 클래스 내부에 생성자가 하나라도 없으..

    [Java] 메서드 시그니처와 메서드 오버로딩

    [Java] 메서드 시그니처와 메서드 오버로딩

    메서드 시그니처(Method Signature) 메서드 시그니처란 메서드명과 매개변수의 자료형을 의미 메서드의 반환 타입은 해당되지 않는다. 메서드 오버로딩(Method Overloading) JVM은 메서드명이 동일해도 매개변수의 자료형 또는 개수가 다르면 다른 메서드라고 인식한다. 위의 특징을 이용하여 하나의 클래스 안에 동일한 이름의 메서드를 여러 개 정의하는 것을 메서드 오버로딩이라 한다. public class Main { public static void main(String[] args) { MyClass mc = new MyClass(); mc.print(1); mc.print(1, 10); mc.print('X'); mc.print("메서드 오버로딩"); } } class MyClass ..

    [Java] 필드와 메서드

    [Java] 필드와 메서드

    필드(field) 필드 클래스에 포함된 변수로 객체의 속성값을 지정할 수 있다. 힙 메모리의 객체 내부에 생성되며, 객체가 사라지지 않는 한 절대로 삭제되지 않는다. 직접 초기화를 하지 않아도 강제 초기화가 된다. 초기화 값은 기본 자료형은 각 자료형에 맞게 초기화되며, 참조 자료형은 null로 초기화된다. (힙 메모리 특징) 지역 변수 메서드 내에 포함된 변수 스택 메모리에 생성되며, 메서드가 종료되면 자바 가상 머신이 자동으로 프레임을 삭제한다. 1개의 메서드 안에 선언된 모든 지역 변수들의 집합을 '프레임(frame)'이라 한다. 직접 초기화를 하지 않으면 빈 공간으로 남아 있으며 출력을 시도할 경우 예외를 발생한다. (스택 메모리 특징) // 필드와 지역 변수 class MyClass { int ..

    [Java] 클래스와 객체

    [Java] 클래스와 객체

    클래스와 객체 클래스의 생성자로 객체를 만드는 과정을 '인스턴스화(instantiation)'라고 하며, 인스턴스화로 만들어진 객체를 '인스턴스(instance)'라고 한다. 클래스 내부 구성 요소 중 생성자를 제외한 나머지 요소는 '인스턴스 멤버(instance member)'라고 한다. 클래스에 정의된 멤버는 바로 사용할 수 없으며, 객체를 생성해 사용해야 한다. 클래스 클래스(class)란 객체를 정의한 '설계도(blueprint) 또는 '틀(frame)'과 같다. -> 1개의 클래스로 여러 개의 객체 생성 가능 클래스의 구성요소와 기본 문법 클래스는 class 키워드와 함께 정의한다. 클래스명은 대문자로 시작하는 것이 관례다. // 클래스 정의 class 클래스명 { // ... } 클래스의 외부..

    [Java] 배열

    [Java] 배열

    배열이란 배열이란 동일한 타입의 값들을 하나의 묶음으로 묶은 자료 구조 배열은 생성할 때 배열의 크기를 지정해야 하며 한 번 선언한 크기는 변경 불가 EX. int[] numbers = new int[4]; -> int형 데이터가 4개 들어갈 수 있는 배열 배열은 참조 자료형으로, 데이터의 원본 값은 힙 메모리에 저장된다. 힙 메모리 영역의 모든 값은 강제로 초기화되며, 배열에 값을 할당하지 않으면 자료형에 맞게 강제 초기화된다. (정수:0, 실수:0.0, boolean:false String:null 등) 1차원 배열 1차원 배열의 선언 배열을 선언하면 스택 메모리에 변수에 대한 공간만 생성하고, 스택 메모리 특성 상 초기화를 해주지 않으면 빈 공간으로 유지된다. // 1차원 배열 선언 자료형[] 변수..

    [Java] 제어문 (조건문 / 반복문 / 제어키워드)

    제어문이란? 제어문이란 기본적으로 위에서 아래로 처리되는 코드의 처리 순서를 변경하는 것 제어문은 선택 제어문(조건문)과 반복 제어문(반복문)으로 이루어져 있다. 선택 제어문(조건문) 선택 제어문은 if 문과 switch문으로 구성 if 문 조건식에 따라 실행문의 실행 여부를 결정한다. 기본적인 문법 구조는 크게 if 문, if - else 문, if - else if - else문 으로 나뉜다. if 문 : 조건식이 true일 경우 해당 블록 실행 if - else 문 : if 문의 조건식이 false일 경우 해당 블록 실행 if - else if - else 문 : 여러 개의 조건식을 비교할 수 있으며, 순차적으로 조건식을 비교하여 처음 true가 되는 블록 하나만 실행한다. // if 문 if (..

    [Java] 연산자

    [Java] 연산자

    학습한 내용을 토대로 작성한 글이며, 학습에 따라 추가 또는 변경될 수 있습니다. 잘못된 내용이 있으면 알려주세요.... 연산자 종류 자료형 연산자 기능 반환 산술 연산자 +, -, *, /, % 사칙연산 및 나머지 연산 값 증감 연산자 ++, -- 1씩 증가 및 감소 비트 연산자 &, |, ~, ^ 비트 AND, OR, NOT, XOR 시프트 연산자 , >>> 비트 단위 이동 비교 연산자 =, ==, != 크기 비교 논리 논리 연산자 &&, ||, !, ^ 논리 AND, OR, NOT, XOR 복합 대입 연산자 =, +=, -=, *=, /=, &=, |=, =, >>>= 산술 연산 결과 대입 실행 삼항 연산자 (조건) ? x : y if - else문과 동일 기능 산술 연산자 산술 연산자는 사칙연산에..

    [Java] 자료형(Type)

    자료형이란? 자료형은 어떤 값의 유형 및 종류를 의미하며, 타입에 따라 값이 차지하는 메모리 공간의 크기와, 값이 저장되는 방식이 결정된다. 자료형은 크게 기본 자료형(primitive type)과 참조 자료형(reference type)으로 구분할 수 있다. 기본 자료형 : 변수와 변수의 데이터가 모두 스택 메모리 영역에 저장된다. 즉, 기본 자료형은 데이터를 저장할 때 변수에 데이터의 실제 값이 저장된다. 참조 자료형 : 변수는 기본자료형과 동일하게 스택 메모리에 저장되지만 변수에 할당된 데이터 값은 힙 메모리 영역에 저장된다. 즉, 데이터를 힙 메모리에 저장한 후 힙 메모리의 주소 값이 변수에 저장된다. 참조 자료형은 기본 자료형 8가지를 제외한 모든 자료형이며, 직접 정의할 수도 있다. 기본 자료..

    [Java] 리터럴 (Literal)

    리터럴이란? 리터럴의 사전적 의미는 '문자 그대로의'라는 의미로 프로그래밍에서 리터럴이란 문자가 가리키는 값 그 자체를 의미한다. 리터럴(literal)이란 소스코드의 고정된 값을 대표하는 용어다 (출처 : 리터럴-위키백과) 리터럴은 변수 또는 상수에 할당할 수 있다. 리터럴은 변수 초기화에 종종 사용된다. // 정수형 리터럴 27을 정수형 변수 currentAge에 할당 int currentAge = 27; // 실수형 리터럴 3.14159를 실수형 변수 pi에 할당 double pi = 3.14159; // 논리형 리터럴 true를 논리형 변수 boolean에 할당 boolean isEmpty = true; // 문자형 리터럴 'A'를 문자형 변수 firstAlphabet에 할당 char firstA..