Java (37) 썸네일형 리스트형 Ch6 클래스 - final 필드와 상수 final 필드 초기값이 저장되면 이것이 최종값이 되어 프로그램 실행 도중에 수정할 수 없다. final 타입 필드 [ = 초기값]; final 필드의 초기값을 줄 수 있는 방법은 1. 필드 선언 시 2. 생성자에서(복잡한 초기화 코드 혹은 객체 생성 시 외부 데이터로 초기화) 두 가지이다. 만약 초기화되지 않은 final이 남아있으면 컴파일 에러가 발생한다. 객체마다 저장되고, 생성자의 매개값을 통해서 초기값이 여러 가지 값을 가질 수 있다. package p4; public class Person { final String nation = "Korea"; final String ssn; String name; public Person(String ssn, String name) { this.ssn =.. Ch6 클래스 - 정적 멤버와 Static 정적멤버와 Static - Static 이 붙어있는 것들 - 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드(정적 필드, 정적 메소드), 클래스 멤버라고도 한다. - 정적멤버는 객체 내부가 아닌 메소드영역에 존재한다 - 정적 멤버는 객체를 생성하지 않고 클래스로 바로 접근해 사용한다. 컴파일 시에 클래스로더가 바이트코드를 로딩해서 메소드 메모리 영역에 적재하기 때문에 컴파일만 하면 자동으로 메모리에 올라간다. 메모리 생성 방법 "어떤 변수든 어디든 메모리에 올라가야 한다." 1. 힙메모리영역 : new 2. 스택 메모리: 변수선언 int a; Student s; (참조변수도 스택에 올라간다.) 3. 메소드영역 : 메소드호출시, 컴파일시(static @) ; 컴파일이 끝나면 클.. Ch6 객체지향프로그래밍 - 메소드 메소드의 구조 접근지정자 리턴타입 메소드명(매개변수){ //메소드 선언부를 메소드 시그니처라고도 한다. 수행문 } cf. 접근지정자 : 메소드의 사용 범위를 정한다 [public package(default) protected private] 수업시간 코드 package p1; //클래스는 설계도이기 때문에 객체화하지 않으면 소용이 없음. public class Calculator { /*메소드의 구조 접근지정자 리턴타입 메소드명(매개변수) { //접근지정자 메소드의 사용 범위를 정함 public package(default) protected private //이 패키지 안에서 클래스 상관없이 다 써라(default). //동작할 내용 코드 } 메소드는 정의해두고 사용할때는 호출해서 쓴다. 리턴타입 변.. 열거 객체의 메소드 p.179 예제 - 열거 객체의 메소드 name() | ordinal() | compareTo() | valueOf | values() package BookExampleHomework; public class EnumMethodExample { public static void main(String[] args) { //name()메소드 Week today = Week.SUNDAY; //변수선언. SUNDAY란 열거상수와 today는 같은 주소값을 가지며 같은 Week 객체를 참조한다. String name = today.name(); //today가 가지고 있는 주소값을 통해 Week객체에 접근하면, 그안의 name메소드를 통해 name이란 변수에 today가 가진 문자열(SUNDAY)을 저장한다. .. 열거 타입과 열거 상수 p.175 Calendar.getInstance() 메소드와 get()메소드의 활용 package BookExampleHomework; import java.util.Calendar; public class EnumWeekExample { public static void main(String[] args) { Week today = null;//열거타입 변수 선언 -->스택메모리에 today 저장, 아직 참조하는 값은 없음 Calendar cal = Calendar.getInstance(); //getInstance 메소드의 리턴 값으로 Calendar 객체 반환되고, 그 주소를 cal에 저장함. 이를 통해 년,월,일,요일,시간,분,초를 얻을 수 있는 get()메소드를 이용할 수 있음. //getIns.. 배열복사 09 for문으로 배열 복사 package BookExampleHomework; public class ArrayCopyByForExample { public static void main(String[] args) { int[] oldIntArray = {1,2,3}; int[] newIntArray = new int[5]; for(int i=0; i Ch6 객체지향프로그래밍 - 필드, 생성자 Object-Oriented Programming 객체 객체란 처리할 하나의 자료로, 이 객체를 속성(필드)과 동작(메소드)으로 나누는 것을 객체 모델링이라고 한다. 각각의 부품객체를 만들어서 조립하여 요구사항을 처리한다. cf. 추상화 : 프로그램을 만드는 데 필요한 자료만 추출하는 것으로, 비즈니스에서 필요한 객체만을 뽑아내는 과정 물리적 vs. 논리적 자료 물리적 : 실제자료 (ex.홍길동) 논리적 : 개념자료 (ex.선생님,강의) 객체 간의 관계 집합관계 : 완성품이 부품들을 포함한다 상속관계 : 상위 객체(주로 종류)를 기반으로 하위 객체(구체적인 사물)를 생성하는 관계 사용관계 : 객체 간의 상호작용(메소드 호출) 객체 지향의 프로그래밍 캡슐화(Encapsulation) : 객체의 필드, 메소.. Ch5 - 열거타입 열거타입 (enumeration type) p.171 "한정된 값만을 갖는 데이터 타입으로서 몇 개의 열거 상수 중에서 하나의 상수를 저장한다." "열거 타입을 선언하기 위해서는 먼저 열거타입의 이름과 동일한 소스 파일(.java)를 생성해야 한다" 사실 하나의 소스파일안에서 선언해도 두 개의 실행파일(.class)이 저장되어 작동한다. 열거타입은 고정된 항목을 열거해서 빠르게 처리하고, 잘못된 데이터의 입력을 방지해준다. 열거타입선언 public enum Week {MONDAY,....,SUNDAY} public enum이라는 키워드는 소문자 | 열거타입의 첫글자는 대문자 | 열거상수는 모두 대문자, 여러 단어라면 _로 연결 (ex.LOGIN_SUCCESS) 열거타입변수 열거상수는 단독으로 사용불가능하.. 이전 1 2 3 4 5 다음