IT&코딩/Java (21) 썸네일형 리스트형 Java - 13일차 (알아두면 유용한 클래스) ■ String 클래스 문자열을 의미하는 클래스 가장 많이 쓰이는 클래스 중 하나 정확히 말하면, 객체 자료형이지만 기본 자료형처럼 사용함. 원래 사용하려면 String str = new String();으로 써야 하지만 String str = "abcd";로 그냥 쓰면 된다. □ String 클래스 생성자 □ 객체 생성법 □ 암시적 객체 생성과 명시적 객체 생성의 차이점 1. '==' 연산자는 객체의 주소값 비교 2. 객체의 값 비교는 equals() 메서드를 이용함. package jun.java.exam03; public class StringExOne { public static void main(String[] args) { String s1 = "Twinkle"; String s2 = "Twi.. Java - 12일차 (이너클래스와 열거형) ■ 이너클래스 : 내부클래스 : 중첩클래스 1. 이너클래스의 이해와 특징 특정 클래스 내에 또 다른 클래스가 정의되는 것을 의미한다. 이런 이너 클래스가 필요한 이유는 지금까지 작업해왔던 클래스들과는 다르게 독립적이지는 않지만 하나의 멤버처럼 사용할 수 있는 특징이 있다. 2. 이너클래스를 정의할 때 주의사항이자 장점 이너클래스는 외부 클래스의 모든 멤버들을 마치 자신의 멤버처럼 사용할 수 있다. static 이너 클래스는 제외하고는 다른 이너 클래스는 항상 외부 클래스를 통해야 생성이 가능하다. 외부클래스명$내부클래스명.class로 class 파일이 만들어짐. 3. 이너클래스의 종류 member class는 가장 기본적인 형태이다. static, local class는 member class에서 파생된.. Java - 11일차 (추상클래스와 인터페이스) ■ 추상클래스 1. 추상화의 이해와 선언법 추상화라는 것은 구체적인 개념으로부터 공통된 부분들만 추려내어 일반화 할 수 있도록 하는 것을 의미한다. 다시 말해서 일반적으로 사용할 수 있는 단계가 아닌 아직 미완성적 개념인 것이다. 그럼 자바에서 얘기하는 추상(abstract)화 작업을 하기 위해서는 먼저 추상 메소드를 이해해야 한다. public acstract void abstractMethod(); 위의 내용은 추상 메소드의 구성이다. 구성과 사용 예를 살펴보면 메소드를 정의하면서 brace( { } )를 생략하여 실상 메소드가 하는 일(body)이 없이 semicolon(;)으로 문장의 끝을 나타내었다. 그리고 abstract라는 예약어를 통해 현 메소드가 추상 메소드임을 명시하였다. abstrac.. Java - 10일차 (상속과 다형성) ■ 클래스의 상속 개념 상속 물려주는 클래스 (기본 클래스, 슈퍼 클래스, 부모 클래스) 물려받는 클래스 ( 유도 클래스, 하위 클래스, 자식 클래스) 보통은 상위/하위 부모/자식 슈퍼/서브 1. 상속의 개념과 중요성 부모가 보유하고 있는 재산 중 일부를 자식이 물려받는 것을 의미한다. 자바에서는 이런 클래스간의 다중 상속을 지원하지 않으므로 객체의 명확성을 높였다. 2. 클래스 상속의 정의법 자바에서 얘기하는 상속이라는 것은 특정 클래스가 가지는 일부 속성과 기능을 다른 새로운 클래스에게 제공하기 위해 맞는 클래스들간의 관계를 말한다. 이는 super 클래스를 새로운 sub 클래스에서 [extend]라는 예약어를 사용하여 서로 관계를 맺은 상태이다. 3. 클래스 상속의 중요성 클래스 상속은 객체의 재사.. Java - 9일차 (객체지향 프로그래밍(클래스)2) ■ 인자값 전달방식 1. 값 호출 (Call by value) 이는 앞선 예제 MethodExTwo.java와 같이 메소드를 호출할 때 기본 자료형의 값을 인자로 전달하는 방식을 의미한다. package jun.java.exam07; public class ValueParameter { public int increase(int n) { ++n; return n; } public static void main(String[] args) { int var1 =100; ValueParameter vp = new ValueParameter(); int var2 = vp.increase(var1); System.out.println("var1 = " + var1 + ", var2 = " + var2); } } .. Java - 8일차 (객체지향 프로그래밍(클래스)) 기존 절차적 프로그래밍의 과정은 변수 선언 - 입력 - 계산 - 출력의 순서를 거친다. 객체지향 프로그래밍은 모듈단위(기능위주) main에 a, b, c, d 기능이 각각 존재한다고 했을 때, 필요한 기능을 불러다 쓸 수 있다. 순서가 중요한 것이 아니라 기능이 잘 작동하는지가 중요하다. ■ 객제치향언어 1. 코드의 재사용성이 높다 - 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다. 2. 코드의 관리가 용이하다. - 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다. 3. 신뢰성이 높은 프로그래밍을 가능하게 한다. - 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다. .. Java - 7일차 (Game 설계) ■ 주민등록번호 분석 프로그램 □ 조건 프로그램 시작하면 이름과 주민등록번호 13자리를 입력받는다. 홍길동님의 주민등록번호 분석결과 생년월일 : XXXX년 XX월 XX일 나이 : XX세 성별 : 남(여) 출생지역 : XX지역 잘못된 주민등록번호입니다. □ 주민등록번호 코드 package jun.java.exam04; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Calendar; public class JuminQuiz { public static void main(String[] args) throws IOException { BufferedReader .. Java - 6일차 (배열) ■ 배열의 개념 배열은 같은 자료형들끼리 모아두는 하나의 묶음이다. 자바에서 하나의 배열은 하나의 객체로 인식된다. 동일 자료형이 여러개 반복될 때 이를 하나의 변수명으로 관리하며, 각각의 구분은 순차적인 첨자자를 사용한다. reference 자료형 4byte 배열의 선언 : int[] 배열명; 또는 int 배열명[]; 배열의 생성 : 배열명 = new 자료형[개수]; 배열명 = {값1, 값2, 값3}; * 배열부터는 초기화보다는 생성이라는 말을 주로 쓴다. new에 의해서 할당되면 자동초기화 된다. int[] x; int x[]; // 배열의 선언 x = new int[3]; // 배열의 생성 * 2줄을 합쳐서 int[] x = new int[3];으로 쓸 수 있다. x[0]=1; x[1]=2; x[2.. 이전 1 2 3 다음