본문 바로가기

Development

(45)
(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..
(Java) Chapter7. 객체 지향 프로그래밍 1. 오리엔테이션 객체 지향 프로그래밍(Object-Oriented Programming) - 객체란? 프로그램을 구성하는 로직을 상태와 행위로 그룹화 한 것 ※ 앞의 6개 챕터는 절차 지향 프로그래밍이라고 함 - 절차 지향 : 개체를 순차적으로 처리하는 방식 (선형적) - 객체 지향 : 개체를 캡슐화하여 상호작용하여 처리하는 방식 (구조적) - 객체 지향 프로그래밍 컨셉 문법 : if나 for문처럼 객체를 만드는 방법 설계 : 현실의 추상화, 로직의 부품화, 부품들의 은닉화(캡슐화), 부품들간의 연결점 표준화, 로직의 상속성, 로직들의 다형성(오버로딩) 2. 클래스와 인스턴스 그리고 객체 1) 클래스와 인스턴스 - 클래스 : 설계도, 메소드의 정의 코딩의 소양은 중복의 제거, 로직이 중복된다면 메소드를..