언어

    java [5] 객체지향 프로그래밍-2

    java [5] 객체지향 프로그래밍-2

    자바의 정석을 보며 새로 알게되거나 잊었던 사실들을 포스팅한다 상속 클래스는 다른 클래스를 상속 받을 수 있다. 이를 부모-자식 관계라고 표현하는데 자식 클래스는 부모 클래스의 멤버를 가진다. 주의해야할 것은 멤버만 상속받고, 생성자와 초기화 블럭은 상속되지 않는다는 것이다. class Parent { int age; } class Child extends Parent { void play() { System.out.println("놀자~"); } } Parent 클래스는 age 멤버를 가지고 있고 Child 클래스는 age 멤버와 play() 메서드를 갖게 된다. 또한, 클래스들은 오직 하나의 클래스만 상속받을 수 있으며 2개 이상의 클래스를 상속받을 수 없다. (단일상속) Object 클래스 Obje..

    java [5] 객체지향 프로그래밍-1

    java [5] 객체지향 프로그래밍-1

    자바의 정석을 보며 새로 알게되거나 잊었던 사실들을 포스팅한다 인스턴스 클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화라고 하며 그 과정에서 만들어진 객체를 인스턴스라고 한다. 인스턴스는 참조변수를 통해서만 다룰 수 있고, 참조변수와 인스턴스의 타입은 일치해야 한다. Person p = new Person(); 객체 배열 많은 수의 객체를 다뤄야할 때, 객체 배열을 생성하여 편리하게 다룰 수 있다. Person[] pArr = new Person[3]; # 초기화 방법1 Person[] pArr = { new Person(), new Person(), new Person()}; # 초기화 방법2 Person[0] = new Person(); Person[1] = new Person(); Person..

    java [4] 배열

    java [4] 배열

    자바의 정석을 보며 새로 알게되거나 잊었던 사실들을 포스팅한다 배열의 길이 자바에서는 JVM이 모든 배열의 길이를 별도로 관리하며, '배열이름.length'를 통해서 배열의 길이에 대한 정보를 얻을 수 있다. 또한 아래 코드처럼 길이가 0인 배열도 생성이 가능하다. int[] arr = new int[0]; int[] arr2 = {}; 배열의 출력 int[] arr = {100, 200, 300}; // [100, 200, 300] System.out.println(Arrays.toString(arr)); Arrays.toString()을 이용하면 주석처럼 출력할 수 있다. char[] arr = {'a', 'b', 'c'}; // abc System.out.println(arr); char 배열은 출..

    java [3] 조건문과 반복문

    자바의 정석을 보며 새로 알게되거나 잊었던 사실들을 포스팅한다 향상된 for문(enhanced for statement) JDK1.5부터 배열과 컬렉션에 저장된 요소에 접근할 때 편리하게 할 수 있도록 새로운 문법이 추가되었다. for ( 타입 변수명 : 배열 또는 컬렉션 ) { // 반복할 문장 } 위와 같은 형태를 지닌다. int [] arr = { 10, 20, 30, 40, 50 }; for(int i=0; i < arr.length; i++) { System.out.println(arr[i]); } for (int tmp : arr) { System.out.println(tmp); } 향상된 for문은 매 반복마다 arr에서 하나씩 순서대로 읽어서 선언한 변수(tmp)에 저장한다. 기존 for문..

    java [2] 연산자

    자바의 정석을 보며 새로 알게되거나 잊었던 사실들을 포스팅한다 연산자의 우선순위와 결합규칙 1. 산술 > 비교 > 논리 > 대입. 대입은 제일 마지막에 수행된다. 2. 단항(1) > 이항(2) >삼항(3). 단항 연산자의 우선순위가 이항 연산자보다 높다. 3. 단항 연산자와 대입 연산자를 제외한 모든 연상의 진행방향은 왼쪽에서 오른쪽이다. 리터럴 계산 다음 코드는 컴파일해도 오류가 나지 않는다. char c2 = 'a' + 1; System.out.println(c2); 왜냐하면, 'a' + 1은 리터럴끼리의 연산이기 때문에 런타임에 값이 변하지 않는다. 그래서 컴파일러가 컴파일할 때 계산해서 그 결과로 c2를 대체한다. char c2 = 'b' System.out.println(c2); 따라서 두 코드..

    java [1] 변수

    자바의 정석을 보며 새로 알게되거나 잊었던 사실들을 포스팅한다 변수의 타입 java에서 자료형은 '기본형'과 '참조형'으로 나뉜다. 기본형 변수는 실제 값을 저장하지만, 참조형 변수는 어떤 값이 저장되어 있는 주소를 저장한다. 기본형에는 흔히 우리가 알고 있는 boolean, char, byte, short, int, log, float, double 총 8개가 있고, 그 외에 나머지.. 예를 들어 클래스, 배열 등은 전부 참조형이다. boolean, byte는 1바이트 char, short는 2바이트 int, float은 4바이트 long, double은 8바이트의 크기를 차지한다. 일반적으로 int는 CPU가 가장 효율적으로 처리할 수 있는 타입이기 때문에 많이 사용한다. 숫자 뒤에 l을 붙이면 lo..