본문 바로가기

Development/JAVA

(9)
(Java) Chapter16. Generic 1. 개념 - 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법 - 제네릭 사용의 배경 package chapter_13; class StudentInfo { public int grade; StudentInfo(int grade) {this.grade = grade;} } //class StudentPerson { // 아래의 EmployeePerson 과 메커니즘이 같음 // public StudentInfo info; // StudentPerson(StudentInfo info) {this.info = info;} //} class EmployeeInfo { public int rank; EmployeeInfo(int rank) {this.rank = rank;} } //class Emp..
(Java) Chapter15. Reference 1. 참조 1) 복제 - 참조 자료형 데이터타입: new로 생성하는 데이터타입을 일컫는 말 - 복제의 개념 package chapter_13; public class _01_Reference { public static void runValue() { int a = 1; int b = a; // 1이 a라는 변수 안에 들어갔고 그것을 복제해서 b에 담음. b = 2; // b안에 들어간 1을 2로 바꿔도 원본인 a 안에 들어간 1은 변하지 않음 System.out.println("runValue, " + a); } public static void main(String[] args) { runValue(); // 1 } } 2) 참조 예시 package chapter_13; class A { public..
(Java) Chapter14. enum 1. enum이전의 상수 사용 1) 사용 배경 - 상수는 변하지 않는 값으로 변수의 반대편에 있음. - Java5.0부터 생긴 기능 - 이전에 사용했던 패턴들을 유지하는 경우도 있으니 전 버전은 알고 가자 - int x(=변수) = 1(=상수) 2) 이전 버전 사용 예시 package chapter_12; //public class _03_Enum { // public static void main(String[] args) { // /* // 1. 사과 // 2. 복숭아 // 3. 바나나 // */ // int type = 1; // 상수에 대한 주석을 지운다면 무엇을 위한 코드인지 알 수 없음 // switch (type) { // case 1: // System.out.println(57); // ..
(Java) Chapter13. Object 1. 상속 - 자바에서는 상속하건 하지 않았건 기본적인 상속을 하게된다. ex) class O = class O extends Object {} - 자바에서 모든 클래스는 모든 클래스의 조상인 Object를 암시적으로 상속받고 있는데, 그 이유는 모든 클래스가 공통으로 포함하고 있어야하는 기능을 제공하기 위해서이다. 즉, object라는 클래스가 기본적으로 가지고 있는 메소드를 제공받기 위해서 굳이 표시하지 않아도 자동적으로 상속받는 구조로 기능한다. 2. 대표적인 메소드 1) toString - 객체를 문자로 표현하는 메소드 - 굳이 "class A extends Object" 하지 않아도 Object를 상속받아 포함되어있는 toString 메소드를 불러와 사용할 수 있게 됨 - 상속받은 toStrin..
(Java) Chapter12. 예외 1. 개념 1) 개괄 어플리케이션을 개발하는 데 있어서 오류나 보안 등의 약점으로 문제가 발생할 수 있는데, 이를 실패라고 한다면 최대한 덜 실패하는 방법을 알기 위해서 예외를 알고 있어야 한다. 기능이 많아질수록 오류가 발생할 확률은 증가한다. 예외는 프로그램을 만든 개발자가 상정한 정상적인 처리에서 벗어나는 경우에 이를 처리하기 위한 방법이다. 2) 사용 문법 요소 try { 예외의 발생이 예상되는 로직 } catch(예외클래스 인스턴스) { 예외가 발생했을 때 실행되는 로직 } 즉, 코드가 실행되는 도중 문제가 발생한다면 예외적인 사항으로 인식하고 매개변수 'e'에 담고 다른 구문을 실행 class Calculator10 { int left, right; public void setOprands(i..
(Java) Chapter11. 접근 제어자 1. 자유와 규제 1) 배경 규제 중의 하나는 데이터 타입이 있다. 어떤 변수가 있을 때 그 변수에 어떤 데이터 타입이 들어있는지, 또 어떤 메소드가 어떤 데이터 타입의 데이터를 리턴하는지를 명시함으로써 사용하는 입장에서는 안심하고 변수와 메소드를 사용할 수 있게 된다. 이러한 규제에는 추상 클래스, final, 접근제어자, 인터페이스 등이 포함된다. 2) 접근 제어자의 개념 접근제어자는 클래스의 맴버(변수와 메소드)들의 접근 권한을 지정한다. 3) 접근 제어자 사용 이유 사용자가 객체 내부적으로 사용하는 변수나 메소드에 접근해서 발생하는 의도하지 못한 오류를 막기 위해 사용함 2. 클래스 맴버에 대한 접근 제어자 1) Public (어떠한 조건에서도 접근 가능) 2) Private (같은 클래스를 제외..
(Java) Chapter10. API 1. 기본 패키지와 사용자 정의 로직 1) 배경 - 자바는 기본적으로 자주 사용하는 패키지를 제공함 - 예시 public class _01_API { public static void main(String[] args) { // 기본 패키지와 사용자 정의 로직 // System.out.println(); 를 뜯어보자 System.out.println(1); // System : 클래스, out : 변수, println : 메소드 // 이것들은 정의하지도, import 하지도 않았는데 어디서 온건가? } } 정답 package chapter_09; import java.lang.*; // 이 패키지를 자동적으로 로드하기 때문 - System은 java.lang에 소속된 클래스이다. - API(Applica..
(Java) Chapter8. 생성자와 상속 1. 생성자 - 개념 : 어떤 동작을 실행하기 전에 준비하는 초기화의 기능 class Calculator4 { int left, right; // 생성자(constructor) : 클래스가 실행되면 자동으로 생성자를 최우선으로 실행, 없으면 자동으로 만듦 public Calculator4(int left, int right) { this.left = left; this.right = right; } public void sum() { System.out.println(this.left + this.right); } public void avg() { // 평균 메소드 정의 System.out.println((this.left + this.right) / 2); } } public class _12_Con..