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){}