자바

· IT/Java
클래스 변환은 상속 관계에 있는 클래스에서 발생한다. 자동 타입 변환(Promotion) 상속 관계에서 자식이 부모 타입으로 타입 변환하는 것을 클래스의 자동 타입 변환이라 한다. 부모타입 변수 = 자식타입객체; Child child = new Child(); Parents parents = child; Parents parents = new Cat(); Parents와 Child 변수는 타입만 다르고 동일한 Child 객체를 참조한다. 바로 위의 부모가 아니더라도 상속 계층에서 상위 타입이라면 자동 타입 변환이 가능하다. 상속 관계에 있지 않으면 컴파일 에러가 나타난다. 예제 코드 더보기 package ch07.sec07.exam02; public class Parent { // 메소드 선언 publi..
· IT/Java
Method Overriding 자식 클래스는 부모 클래스의 private 멤버를 제외한 모든 메소드를 상속 받는다. 상속 받은 메소드는 그대로 사용해도 되고, 필요한 동작을 위해 재정의 후 사용할 수도 있다. 즉, Method Overriding이란 상속된 메소드를 자식 클래스에서 직접 재정의하는 것이다. Method Overriding이 되면 부모 메소드는 숨겨지고, 자식 메소드가 우선적으로 사용된다. Overriding 규칙 메소드의 동작만 재정의하는 것으로, 자식 메소드의 선언부가 부모 메소드의 선언부(리턴 타입, 메소드 이름, 매개변수)와 동일해야 한다. 부모 클래스의 메소드보다 접근 제어자를 더 좁은 범위로 변경할 수 없다. 부모 클래스의 메소드보다 더 큰 범위의 예외를 선언할 수 없다. 예제..
· IT/Java
접근 제한자(Access Modifier) 경우에 따라 외부에서 객체의 필드를 변경하거나 메소드를 호출하지 못하게 막아야 할 때가 있다. 중요한 필드와 메소드가 외부로 노출되지 않아야 객체의 무결성을 유지한다. 그러기 위해 접근 제한자를 사용한다. 접근 제한자 제한 대상 제한 범위 public 클래스, 필드, 생성자, 메소드 없음 protected 필드, 생성자, 메소드 같은 패키지 또는 자식 객체만 사용 가능 (default) 클래스, 필드, 생성자, 메소드 같은 패키지 private 필드, 생성자, 메소드 객체 내부 접근 제한 강화 순서 public > protected > default > private 1. 클래스 접근 제한 클래스는 public, default 접근 제한을 가진다. [public..
· IT/Java
값 변경을 금지하고 읽기만 허용할 때 주로 final 필드와 상수를 선언하여 사용한다. 1. final 필드 선언 final 필드는 초기값이 저장되면 최종적인 값이 되어 프로그램 실행 중에 수정할 수 없다. final 타입 필드 [=초기값]; 초기값은 필드 선언 시와 생성자에서 대입할 수 있다. 고정된 값이라면 필드 선언 시에 주고 복잡한 초기화 코드가 필요하거나 객체 생성 시 외부에서 전달된 값으로 초기화하면 생성자에서 준다. 두 방법을 사용하지 않으면 컴파일 에러가 발생한다. 예제 코드 더보기 public class Korean { // 인스턴스 final 필드 선언 final String nation = "korea"; // 고정값으로 초기 대입 final String ssn; // korean 생..
· IT/Java
1. 인스턴스(Instance) member 객체에 소속되어 있으며, New를 통해 객체 생성 후 사용할 수 있는 필드와 메소드이다. 객체 내부의 인스턴스 멤버에 접근하려면 this를 통해 가능하다. public class Car { // 인스턴스 필드 선언 int gas; //인스턴스 메소드 선언 void setSpeed(int speed) {...} } gas 필드는 객체에 소속된 멤버지만 setSpeed() 메소드는 객체에 포함되지 않는다. 메소드를 객체마다 저장 시 중복 저장으로 메모리 효율이 떨어지기에 메소드 코드는 메소드 영역에 있지만 공유하여 사용하고 객체 없이는 사용 불가하게 제한이 걸려있다. 1-1. this 키워드 객체 내부에서 인스턴스 멤버에 접근하기 위해 this를 사용한다. 생성자..
· IT/Java
메소드 선언은 객체의 동작을 실행 블록으로 정의하는 것이며, 메소드 호출은 실행 블록을 실제로 실행하는 것이다. 메소드는 객체 내부에서도 호출되지만 다른 객체에서도 호출될 수 있다. 1. 메소드 선언 1-1. 리턴 타입 리턴 타입은 메소드가 실행한 후 호출한 곳으로 전달하는 결과값의 타입이다. 리턴값이 없는 메소드는 void로 작성한다. void powerOn() {...} // 리턴값 없음 double divide(int x, int y) {...} // double 타입 값을 리턴 리턴 타입이 있는 메소드는 실행블록 안에서 return 문으로 리턴값을 반드시 지정한다. 1-2. 메소드명 첫 문자를 소문자로 시작하고, camel 스타일로 작성한다. void run() {...} void setSpeed..
· IT/Java
필드(Field) 필드는 객체의 고유 데이터, 부품 데이터, 현재 상태 데이터를 저장한다. 필드 선언 필드 선언 방법은 변수와 동일하지만 반드시 클래스 블록에서 선언되어야만 필드 선언이 된다. 타입 필드 [ = 초기값]; 타입은 필드에 저장할 데이터의 종류를 결정한다. 필드명 첫 문자는 소문자로 한다. camel 스타일로 작성한다. 초기값을 제공하지 않을 경우 자동으로 기본값으로 초기화된다. 필드 선언은 중괄호 블록 어디서든 가능하다. 생성자와 메소드 중괄호 블록 내부에는 선언 불가능하다. 필드 선언 예제 코드 더보기 //--Car.java package cs06.sec06.exam01; public class Car { // 필드 선언 String model; boolean start; int spee..
· IT/Java
클래스로부터 객체를 생성하려면 객체 생성 연산자 new를 사용한다. new 연산자는 객체를 생성시킨 후 객체의 주소를 리턴하여 클래스 변수에 대입할 수 있다. 문법 클래스 변수 = new 클래스(); 라이브러리(library) 클래스 실행할 수 없으며 다른 클래스에서 이용하는 클래스 실행 클래스 main() 메소드를 가지고 있는 실행 가능한 클래스 자바 프로그램은 하나의 실행 클래스와 여러개의 라이브러리 클래스들로 구성되며, 실행 클래스는 실행하면서 라이브러리 클래스를 내부에서 이용한다. 객체 생성 예제 코드 StudentExample 클래스의 main() 메소드에서 Student 객체를 생성 더보기 Student.java public class Student { } StudentExample.java ..
· IT/Java
클래스 선언 객체 생성을 위한 설계도를 작성하는 작업이다. 클래스 작성 규칙 하나 이상의 문자로 이루어진다. 첫 문자는 숫자가 될 수 없다. $, _ 외에 다른 특수문자는 사용 불가능하다. 자바 명령어, 키워드는 사용 불가능하다. 이름은 대소문자를 구분하며 첫번째 문자는 대문자로 작성한다. 문법 //클래스 선언 public class 클래스명 { } public class는 공개 클래스를 선언한다는 뜻이다. 공개 클래스(public class) 어느 위치에 있든지 패키지와 상관 없이 사용할 수 있는 클래스 예제 코드 // 소스 파일 package cs06.sec03; // 패키지 선언 public class SportsCar { // 공개 클래스 선언 } class Tire { } 하나의 소스 파일은 다..
· IT/Java
1. 클래스(class) 자바에서 클래스란 객체를 정의하고 틀 또는 설계도와 같은 의미이다. 자바에서는 설계도인 클래스를 갖고, 여러 객체를 생성하여 사용한다. 클래스는 객체의 상태를 나타내는 필드(field)와 객체의 행동을 나타내는 메소드(method)로 구성된다. field란 클래스에 포한된 변수(variable)를 의미한다. 메소드(method)란 어떠한 특정 작업을 수행하기 위한 명령문의 집합이다. 2. 인스턴스(Instance) 자바에서 클래스를 사용하기 위해 해당 클래스 타입의 객체를 선언해야 하는데, 클래스로부터 객체를 선언하는 과정을 클래스의 인스턴스 화 라고 한다. 이렇게 선언된 해당 클래스 타입의 객체가 인스턴스(Instance)이며, 인스턴스란 메모리에 할당된 객체를 의미한다. 하나..
Huitopia
'자바' 태그의 글 목록 (3 Page)