Cute Hello Kitty Kaoani

Language/JAVA

Language/JAVA

[JAVA] static 변수와 메서드

static static 은 정적, 고정된이란 의미이다. static 키워드를 이용해 static 변수와 static 메서드를 생성할 수 있는데 이를 정적 멤버 (=클래스멤버)라고 한다. static 키워드를 통해 생성된 정적 멤버들은 heap 영역이 아닌 static 영역에 생성된다. static 영역에 할당된 메모리는 모든 객체가 공유할 수 있다. 객체 생성 시 할당된 heap영역의 메모리는 Garbage Collector를 통해 관리를 하지만 static 영역에 할당된 메모리는 관리 영역 밖에 존재하므로 static을 자주 사용하면 프로그램의 종료 시까지 메모리가 할당된 채로 존재한다. ✨ 특징 프로그램 실행 시 생성되어 종료 시 소멸 단 한 번만 생성 클래스명으로 접근 가능 자동초기화 여러 인스턴..

Language/JAVA

[JAVA] 자바의 접근 지정자(access modifier)

접근 지정자 (= 접근제어자) 자바 클래스의 멤버 각각에 외부에서 접근할 수 있는 범위를 지정하는 접근 지정자를 둘 수 있다. 다음과 같은 네 가지가 있다. public: 어디에서든 자유롭게 접근 가능 protected: 같은 패키지 내, 다른 패키지에서 상속을 받은 클래스 내부에서 사용 가능 default: 같은 패키지 내 사용 가능 private: 동일 클래스 내 사용 가능 권장하는 변수의 접근지정자 로컬변수 : 접근지정자 사용불가 인스턴스 변수 : private 권장 👉 외부에서 직접 접근하면 쓰레기값이 저장될 수 있기 때문 클래스(static) 변수 : public 권장 은닉화 은닉화란 값의 보호를 위해 객체의 필드, 메소드를 하나로 묶고 감추는 것을 말한다. private 지정자를 사용하면 해당..

Language/JAVA

[JAVA] 생성자와 this

생성자 (Constructor) 생성자는 인스턴스 변수를 초기화 시키는 역할을 한다. new 를 통해 객체의 인스턴스를 생성할 때 반드시 호출이되는 메소드이다. 생성자는 반드시 클래스명과 동일하게 정의한다. 생성자를 생략하면 컴파일러가 자동적으로 기본 생성자를 생성한다. 생성자의 매개변수를 다르게 지정하여 정의하는 것을 생성자 오버로딩이라 한다. public class Cat { String name; int age; // 생성자 public Cat() { // 클래스명과 동일하게 정의 } // 생성자2 public Cat(String name, int age) { // 오버로딩 this.name = name; this.age = age; } } public class Main{ public static..

Language/JAVA

[JAVA] 변수의 기본형 & 참조형 타입의 차이

데이터 타입은 변수에 저장할 데이터가 메모리에 어떻게 저장되고 어떻게 처리되어야 하는지 명시적으로 알려준다. 이 데이터 타입은 기본형타입과 참조형타입으로 구분된다. 기본형 타입 기본형 타입에는 논리형(boolean), 문자형(char), 정수형(byte, short, int, long), 실수형(float, double)로 나뉜다. 모든 값은 메모리의 스택(stack) 에 저장 변수 선언과 동시에 메모리 생성 null 값을 가질 수 없다. 참조형 타입 참조형 타입에는 클래스, 배열, 인터페이스 등 기본형 타입을 제외한 나머지이다. 실제 값은 메모리의 힙(heap)영역에 저장하고, 영역의 주소값을 스택(stack)에 저장 참조형 변수는 null로 초기화 가능

Language/JAVA

[JAVA] 선언 위치에 따른 변수의 종류

클래스 내의 멤버 변수를 제외한 나머지 변수들은 모두 로컬변수이고, 멤버변수 중 static 키워드를 사용한 것은 클래스변수 그렇지 않은 것은 인스턴스 변수이다./* 클래스 영역 */class Variables { int a; // 인스턴스 변수 static int b; // 클래스 변수 /* 메서드 영역 */ void method() { int c = 0; // 로컬 변수 }} 로컬 변수메서드 안에서 선언된 변수메서드가 호출될 때 생성되고 메서드가 종료될 때 제거스택 stack 메모리에 저장기본적으로 메서드 블록 scope를 따른다반드시 사용 전에 초기화 필수 인스턴스 변수메서드 밖에서 선언된 변수객체 생성할 때 생성되고 객체..

Language/JAVA

[JAVA] 객체, 클래스, 인스턴스의 차이

객체 Object 객체지향이론에서는 소프트웨어 세계에 구현할 대상으로 사물과 같은 유형적인 것 뿐만 아니라, 개념이나 논리와 같은 무형적인 것들도 객체로 간주한다. 클래스 Class객체를 정의해놓은 것으로 객체의 설계도 또는 틀이라고 할 수 있다. 클래스에는 객체와 연관되어 있는 변수와 메소드 그리고 생성자가 있다. 인스턴스 Instance객체가 메모리에 할당되어 실제 사용될 때 인스턴스 라고 한다.인스턴스는 어떤 원본(추상적인 개념)으로부터 생성된 복제본을 의미한다클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화 라고 하며, 만들어진 객체를 그 클래스의 인스턴스라고 한다./* 클래스 */public class Cat { // 인스턴스 변수 String name; int age; ..

Language/JAVA

[JAVA] Bear의 Fish먹기 게임

명품 JAVA Programming 5장 Open Challenge 이 게임에는 Bear의 Fish 객체가 등장하며, 이들은 10행 20열의 격자판에서 각각 정해진 규칙에 의해 움직인다. Bear는 사용자의 키에 의해 왼쪽(a 키), 아래(s 키), 위(d 키), 오른쪽(f 키)으로 한 칸씩 움직이고, Fish는 다섯 번 중 세 번은 제자리에 있고, 나머지 두 번은 4가지 방향 중 랜덤하게 한 칸씩 움직인다. 게임은 Bear가 Fish를 먹으면(Fish의 위치로 이동) 성공으로 끝난다. 다음은 각 객체의 이동을 정의하는 move()와 각 객체의 모양을 정의하는 getShape()을 추상 메소드로 가진 추상 클래스 GameObject이다. GameObject를 상속받아 Bear과 Fish 클래스를 작성하라..

gangintheremark
'Language/JAVA' 카테고리의 글 목록 (2 Page)