본문 바로가기

콩's EDUCATION/콩's JAVA

JAVA 2일차 수업

2013/6/25

 

- 제어문: 조건문, 반복문, 분기문

 

문장1;

if(조건문) true일때 수행하는 문장2;

문장3;

 

 

문장1;

if(조건문) {

true일때 수행하는 문장2-1;

true일때 수행하는 문장2-2;

true일때 수행하는 문장2-3;

}

문장3;

 

 

if(조건문) {

true일때 수행하는 문장;

}

else{

false일때 수행하는 문장;

}

 

- 패키지의 역할 : 논리적으로 연관된 클래스, 인터페이스, Exception(예외처리)를 그룹화한다.

클래스들에 대한 네임스페이스 역할을 한다.

패키지명은 소문자로한다. 도메인 주소의 반대로 보통 쓴다.

예시; kr.ac.anyang.project

- nested 조건문

 

if(조건문1){

if(조건문2){

true일때 수행문장;

}else{

false일때 수행문장;

}

else{

false일때 수행문장;

}

 

- 여러개의 조건을 판별해서 각각의 조건별로 다른 처리를 해야하는 경우

 

if(조건1){

true일때 수행문장;

}else if(조건2){

true일때 수행문장;

}else if(조건3){

true일때 수행문장;

}else if(조건4){

...;

}else{

위의 모든 조건을 만족하지 않을때 수행문장;

}

 

- switch case문

 

switch(변수|연산식|리턴값이 있는 메소드 호출){

case 값1 : 수행문장; 문장; 문장; ... break;

case 값2 : 수행문장; 문장; 문장; ... break;

....

default : 문장;

 

- for(초기화식;반복수행조건;다음반복회차에 대한 연산식){

반복수행문장;}

 

- 반복 수행 조건으로 반복문 처리할 경우

 

while(조건식){

반복수행문장;

 

- 무한루프 for( ; ; ){}

while(true){}

 

 

- 선 수행, 후 조건판별 => 최소한 1번은 무조건 수행

 

do{

반복수행문장;

}

while;

조건문

}

 

- break : 반복문, 조건문을 빠져나올 때

continue : 자신이 포함된 반복문의 끝(마지막)이동

 

- 변수: 할당된 메모리에 오직 하나의 값만 저장할 수 있다.

- 배열: 동일한 타입의 하나 이상의 값을 저장할 수 있다.

 

- 자바에서 배열은 reference type(객체)다.

선언,new 키워드로 생성, 초기화

 

- 배열의 종류

 

primitive type(값저장)배열

reference type(객체)배열

 

int[] arrays;

int []arrays;

int arrays[];

arrays = new int[5]; // 생성시에 배열의 크기를 반드시 선언

 

*** 생성시에 초기화를 명시적으로 하지 않으면 로컬로 선언된 배열이든,

멤버로 선언된 배열이든 default 초기값이 할당됩니다.

 

- 배열 요소에 접근할때는 index또는 첨자로 요소에 접근한다.

- 배열은 생성시에 length라는 멤버필드가 자동으로 생성되며, 배열의 크게 해당하는 정수값이 저장됨.

 

- 2차원 배열은 1차원배열을 1개이상 저장하는 배열.

int[][] arrays;

int [][]arrays;

int arrays[][];

 

arrays = new int[5][5]; // 행,열 고정

arrays = new int[5][]; // 행 개수는 고정, 열 개수는 동적

arrays = new int[][5]; // 컴파일 오류

arrays = new int[][]; // 컴파일 오류

 

int[][] arrays = new int[][]{{1},

{2,3},

{4,5,6},

{7,8,9,10}};

 

** 2차원 배열내에 저장된 1차원의 배열크기는 가변적일수 있다.

 

- C언어(구조적,절차적,알고리즘중심)

Function 기능 중심

 

- 객체 지향 언어 특성 : 코드에 대한 재사용성이 높다. 코드관리가 용이하다.

신뢰성 높은 프로그램 구현이 가능하다.

 

- 객체 지향 언어는 Class단위로 설계한다.

- 클래스와 객체?

클래스는 설계도(붕어빵틀), 객체(붕어빵)는 설계도에 의해 만들어진 사물,개념.

즉, 클래스는 객체를 정의한것. 객체는 속성과 기능을 가지는 실제로 존재하는 사물, 개념

클래스 != 객체, 객체는 클래스를 메모리에 생성(인스턴스)된것

클래스에 대한 인스턴스는 객체

 

TV객체를 생성하기 위한 클래스를 정의

=> 속성, 기능을 나열 후 프로그램적으로 구현할 속성,기능 적용.

Car객체를 생성하기 위한 클래스를 정의

 

- 성적 처리 프로그램

학생(객체) => (학번, 이름, 학과, 과목, 과목점수)=속성, (총점, 평균)=기능

 

student

-stdid :int

average() :

 

STARUML

http://staruml.sourceforge.net/docs/user-guide(ko)/toc.html

 

- 클래스 선언

 

접근지정자

AccessModifier [Modifier] class 클래스이름 [extends 부모클래스이름] [implements 인터페이스1,2,..]

public abstract

(default) final

 

ex> public class Student{}

 

*** 자바는 단일상속만 지원한다.

*** 명시적으로 부모클래스에 대한 선언이 없으면 자동으로 java.lang.object를 상속받는다.

 

- 클래스 속성 선언

 

AccessModifier [Modifier] 타입 변수명(멤버필드명);

public static

protected final

(default) transient

private

 

ex> private int stdId;

private String stdName;

private String[] subject;

 

*** 클래스가 소유자인 변수는 멤버필드, 인스턴스 변수라고 불리며, 명시적 초기화안해도 default값.

*** 메서드가 소유자인 변수는 로컬변수라고 불려지며, 로컬변수에는 접근 지정자 쓰면 안된다.

*** 사용전에 반드시 초기화 해야한다.

 

- 클래스의 메서드 선언

 

AccessModifier [Modifier] 리턴타입 메서드이름([매개변수]) [throws 예외클래스 리스트] {}

public static void

protected abstract

(default) final

private sychronized

native

 

* 리턴타입은 필수이며, 모든 primitive Type, reference Type 선언가능하며, void라 하는 키워드 선언.

 

ex> public int total(){}

public vodi average(int totalJumsu){}