본문 바로가기

Backend/Java13

자바의 정석 ch6. 객체지향언어 객체지향 언어의 역사 컴퓨터가 과학실험이나 미사일 발사실험과 같은 모의실험을 목적으로 사용되었던 초창기에 과학자들은 실제 세계와 유사한 가상 세계를 컴퓨터 속에 구현하고자 하였으며 (HW -> SW) 이러한 노력이 객체지향이론을 탄생시켰다. '실제 세계는 사물(객체)로 이루어져있으며, 발생하는 모든 사건들은 사물간의 상호작용이다.' 라는 객체지향 이론의 기본 개념을 바탕으로 점차 발전하였으며, 빠른 변화를 못쫓아가던 80년대 초 소프트웨어의 위기의 해결책으로 객체지향 언어를 적극적으로 도입하기 시작하였다. 코드의 재사용성이 높고 유지보수가 용이하며, 코드의 중복을 제거함 ⭐ 객체지향 언어의 핵심개념 ⭐ 1. 캡슐화 2. 상속 3. 추상화 4. 다형성 객체지향 언어는 기존의 프로그래밍 언어에 새로운 규칙을.. 2020. 12. 11.
자바의 정석 ch5. Arrays클래스로 배열 다루기 Math클래스는 수학 관련 메서드를 모아놓은 클래스이다. 예를 들어 Math클래스에는 반올림 해주는 round() 함수와 난수를 발생시켜주는 random() 함수가 있다. Math클래스처럼 Arrays클래스도 배열을 다루는데 유용한 메서드들을 제공한다. 문자열 비교와 출력 - equals(), toString() Arrays.toString(arr); // 1차원 배열을 문자열로 변환 Arrays.deepToString(arr2D); // 2차원 이상(다차원) 배열을 문자열로 변환 (str2D == str2D2로 비교하면 안됨 !!!) Arrays.equals(str2D, str2D2); // 1차원 배열의 비교 Arrays.deepEquals(str2D, str2D2); // 다차원 배열의 비교 배열의.. 2020. 12. 11.
자바의 정석 ch5. 다차원 배열 2차원 배열의 선언과 인덱스 2차원 배열은 주로 테이블 형태의 데이터를 담는데 사용된다. 2차원 배열의 선언 int[][] score; int score[][]; int[] score[]; 2차원 배열의 생성 int[][] score = new int[4][3]; // 4행 3열의 2차원 배열 생성 배열을 생성하면 배열 요소 타입의 기본 값으로 초기화된다. (int의 경우 0으로 초기화 됨) 2차원 배열의 인덱스 행 index : 0 ~ 행의 길이 - 1 열 index : 0 ~ 열의 길이 - 1 배열의 각 요소에 접근하는 방법은 '배열이름[행 index][열 index]' 이다. 2차원 배열의 초기화 2차원 배열도 괄호{}를 사용해서 생성과 초기화를 동시에 할 수 있다. int[][] score = {.. 2020. 12. 11.
자바의 정석 ch5. 커맨드 라인을 통해 입력받기 우리는 어떠한 상황에 맞게 코드를 매번 수정하지않기 위해 사용자로부터 입력을 받아 그 값을 통해 프로그램을 돌린다. 우리는 커맨드 라인을 이용하여 Scanner 클래스를 이용하지않고도 사용자부터 값을 입력받을 수 있다. 커맨드라인을 통해 입력된 값은 문자열로 간주되어 String배열에 담겨서 main 메서드의 매개변수 args로 전달된다. 이 때, 커맨드 라인에 입력된 매개변수는 공백문자로 구분되기때문에 입력될 값에 공백이 있는 경우 큰따옴표로 감싸줘야한다. 1. 이클립스의 Run -> Run configurations -> arguments에 매개변수 입력 (abc 123 "Hello world") import java.util.Arrays; class ArrayEx01 { public static v.. 2020. 12. 10.
자바의 정석 ch5. String 배열 String 클래스 = char[] + 메서드 문자열은 문자를 연이어 늘어놓은 것으로 문자배열인 char 배열과 같다. 그런데 Java에서 char배열이 아닌 String클래스를 이용하여 문자열을 처리하는 이유는 String클래스가 char배열에 메서드(기능)을 추가한 것이므로 문자열을 다루기 더 편리하기 때문이다. 1. String은 참조형으로서 주소값을 가지는 자료형이다. (기본형은 저장 공간에 값 자체를 저장) 2. String은 내용을 변경할 수 없고 읽기만 가능하다. 3. String은 보통의 클래스와 다르게 생성자를 부르지않고 객체를 생성할 수있는 특별한 클래스이다. String클래스의 주요 메서드 class ArrayEx01 { public static void main(String[] ar.. 2020. 12. 10.
자바의 정석 ch5. 배열 배열이란 ? 같은 타입의 여러 변수를 하나의 묶음(연속적으로 저장)으로 다루는 것 100개, 1000개의 변수를 다루려면 일일이 선언하기가 불편하기때문에 배열을 사용한다. int[] score = new int[5]; // 길이가 5인 배열을 선언 score[주소값] --가리킴--> [0][0][0][0][0] 배열은 각 저장공간에 이름을 붙이는 대신에 참조변수에 score라는 이름을 붙이고 참조변수를 통해 저장공간을 다룬다. 저장공간에는 score[0], score[1], score[2], score[3], score[4]로 자동으로 인덱스를 이용해 이름이 붙여진다. 배열의 선언과 생성 배열도 변수처럼 사용하기전에 선언을 해줘야한다. 다만, 변수는 선언하는 순간 저장공간이 만들어지지만, 배열은 선언할 .. 2020. 12. 9.