본문 바로가기

분류 전체보기

(894)
9-2장 static 제어자 - static - 클래스의 멤버(필드, 메서드, 이너 클래스)에 사용하는 제어자 - 인스턴스 멤버(instance member) - 객체 안에 있을 때 상요할 수 있는 상태가 되는 멤버 - 정적 멤버(static member) - static이 붙어 있는 멤버 - 객체의 생성 없이 '클래스명.멤버명'만으로 바로 사용 가능 1. 인스턴스 필드와 정적 필드 class A { int m = 3; //객체를 생성한 후 사용 가능 static int n =5; //객체 생성 없이 사용 가능 } - 인스턴스 필드와 정적 필드의 메모리 구조 - 인스턴스 필드의 활용 방법 - 객체를 생성한 후에 사용 가능 A a = new A(); System.out.println(a.m); //3 - '참조 변수명. 인스턴스 필드..
9-1장 접근 지정자 - 자바 제어자 (modifer) - 클래스, 필드, 메서드, 생성자 등에게 어떠한 특징을 부여하는 문법 요소 - 접근 지정자 - 클래스, 멤버, 생성자 앞에 위치할 수 있으며, 사용 범위를 정의하는 역할 1. 멤버 및 생성자의 접근 지정자 - public > protected > default(package) > private - 아무것도 작성하지 않으면 default 접근 지정자가 자동으로 설정 - 멤버 및 생성자에서 사용하는 4가지 접근 지정자 Class Test { public int a; protected int b; int c; //default 접근 지정자 자동 설정 private int d; public void abc(); protected void bcd(); void cde(); //..
8-2 장 외부 클래스 1. 외부 클래스 (external class) - public 클래스의 외부에 추가로 정의한 클래스 - 1개의 자바 소스 파일에는 최대 1개의 public 클래스만 존재 가능. 그 클래스명은 파일명과 일치해야 함 - public 클래스가 아니면 다른 패키지에서 임포트할 수 없으므로 외부 클래스는 같은 패키지안에서만 사용 가능 BCD.java package abc.bcd; class ABC { //... //외부 클래스는 다른 패키지에서 임포트 불가능 } public class BCD { //... // public 클래스는 다른 패키지에서 임포트 가능 } - BCD.java 소스 파일에는 2개의 클래스(ABC, BCD)가 있음 - 소스 파일명이 BCD 이므로 public을 붙일 수 있는 자격이 있는 클..
8-1장 패키지와 임포트 1. 패키지(package) - 비슷한 목적으로 생성된 클래스 파일들을 한곳에 모아 둔 폴더 - 1개의 프로젝트에 1개의 패키지를 생성할 수 있고, 여러 개의 패키지를 생성할 수도 있다. - src 폴더의 하위 폴더에 위치 - 컴파일이 수행되면 바이트 코드가 저장되는 bin 폴더에도 동일한 하위 폴더 생성 - 패키지 지정 x - src 폴더 아래에 소스 파일이 바로 위치 - default package : 하위 폴더가 없음 - 패키지 지정 o - 지정된 패키지 폴더가 src 폴더 아래에 생성 - 그 아래에 소스파일 위치 - 패키지의 영향으로 클래스가 저장되는 공간이 분리돼 클래스명의 충돌을 방지할 수 있음 ex) A회사 B회사 협업 프로젝트 - 2개의 회사가 서로 다른 패키지에 동일한 이름의 클래스를 작..
7-4장 this 키워드와 this() 메서드 - 클래스의 외부에서 멤버 호출 -> 객체를 먼저 생성한 후 '참조 변수명. 멤버명'의 형태로 호출 - 클래스의 내부에서 멤버 호출 -> 객체의 생성 없이 필드와 메서드 바로 사용 가능 - But 모든 사용할 수 있는 상태의 멤버는 항상 객체 속에만 존재 1. 내부 객체 참조 변수명인 this 키워드 - 모든 메서드에는 자신이 포함된 클래스의 객체를 가리키는 this라는 참조 변수가 있음 - 모든 멤버는 객체 속에 존재하는 것이므로 int m =3이라는 필드를 클래스 내부에서 출력하고자 할 때도 System.out.println(this.m)과 같이 작성해야함 - this.를 생략하면 컴파일러가 자동으로 this.를 추가해줌 - 묵시적 this 키워드 자동 추가 package createobject; /..
7-3장 생성자 - 생성자 (constructor) - 객체를 생성하는 역할을 지닌 클래스의 내부 구성 요소 - 필드의 초기화 수행 1. 생성자의 특징 1) 반드시 클래스명과 동일한 이름으로 지어야함 2) 메서드와 비슷한 구조를 지니고 있지만, 리턴타입이 없다. - 클래스명(입력매개변수) { } class A { A() { //... } } 2. 기본 생성자의 자동 추가 - 기본 생성자 - 입력매개변수가 없는 생성자 - 모든 클래스는 생성자를 포함해야 함 - 클래스 ( 붕어빵 기계), 객체 (붕어빵) , 생성자(붕어빵을 찍는 기능) - 컴파일러는 생성자가 없는 클래스를 만들면 적어도 1개의 생성자가 필요하므로 입력 매개변수가 없는 기본 생성자를 추가해줌 - 컴파일러로 기본 생성자가 자동으로 추가된 클래스 class A ..
7-2장 메서드 1. 메서드 정의하기 - 메서드 - 클래스의 기능 - 자바 제어자 리턴(반환) 타입 메서드명(입력매개변수) { 메서드 내용 } public static int sum(int a, int b) { //메서드 내용 } - 리턴 타입 : 메서드 종료 이후 변환(반환)되는 값의 자료형 - 입력매개변수 : 메서드를 호출할 때 전달되는 값의 자료형과 전달받은 값을 저장할 지역 변수명을 정의 - 입력값으로 int형 2개의 값을 입력받아 처리하며, 메서드가 종료된 이후에 int값을 리턴한다 2. 여러 리턴 타입의 메서드 살펴보기 1) 리턴 타입이 void이고, 입력매개변수가 없는 메서드 void print() { System.out.println("안녕"); } 2) 리턴 타입이 int이고, 입력매개변수가 없는 메서드..
7-1장 필드 1. 필드와 지역 변수의 구분 - 필드(filed) - 클래스에 포함된 변수 - 객체의 속성값 지정 - 힙 메모리의 객체 내부 생성 - 힙 메모리의 객체 안에 저장되는 필드는 객체가 사라지지 않는 한 절대로 삭제되지 않음 - 지역 변수 - 메서드에 포함된 변수 - 스택 메모리에 생성 - 자신이 선언된 메서드의 중괄호가 닫혀 메서드가 종료되면, 그 메서드 안에 선언된 모든 지역 변수가 메모리에서 통째로 삭제 class A { int m =3; //상위 중괄호가 클래스일때는 필드 int n = 4; void work1(){ int k=5; //상위 중괄호가 메서드일 때는 지역변수 System.out.println(k); work2(3); } void work2(int i) { //상위 중괄호가 메서드일 때는..