나중에 배울 내용이지만 Thread를 이용하면 delay를 줄 수 있다.
Thread 를 사용하기 위해서는 예외처리가 필요하다.
throws Exception
String 을 제외한 다른 참조유형들은 초기화 하기 위해서 new Date()이렇게 넣어주어야 한다.
package day09;
import java.util.*;
public class ArrayTest4 {
public static void main(String[] args)
throws Exception
{
Date dd = new Date();
Date dt[] = new Date[3];
dt[0] = dd;
Thread.sleep(1000);
dt[1] = new Date();
Thread.sleep(1000);
dt[2] = new Date();
for(int i=0;i<dt.length;i++) {
System.out.println(dt[i]);
}
}
}
변수가 나오기 전까지 공통이다
* int a,b; int , int
* int a[], b; 1 , int
* int []a , b; 1 , 1
* int a, []b; int , 1
* int []a, b[]; 1 , 2
* int []a[], b; 2 , 1
* int [][]a, b; 2 , 2
for each문
for each 문 (확장 for 루프) => jdk5.0부터 사용
for(변수 선언문 : 자료구조)
{
} 자료구조게 저장된 값이 앞에 선언되 변수에 자동으로 전달됨
package day09;
public class ArrayTest5 {
public static void main(String[] args) {
int a[]= {10,20,30,40};
for(int i=0;i<a.length;i++) {
System.out.println(a[i]);
}
System.out.println("********************");
for(int x:a) {
System.out.println(x);
}
char []ch = {'G','o','o','d','~'};
for(char x : ch) {
System.out.print(x);
}
System.out.println();
String []str[]= {
{"Hello","Java"},
{"Hi","HTML","and","CSS"},
{new String("OK")}
};
for(String []s :str) {
for(String e : s) {
System.out.print(e+" ");
}
System.out.println();
}
}
}
OOP - 객체 지향 프로그래밍
1. 구조적 프로그래밍, 절차지향 프로그래밍
ex) C 프로그래밍
: 일을 처리하는 순서와 과정을 프로그래밍을 구현한 것
- Procedure, Process를 중시함
- 순서, 과정이 달라지면 새로운 작업 모델이 필요함
- 재사용성 불가
반면 OOP는 프로세스 중심이 아닌 객체 중심으로 프로그래밍 하는 것
- 모듈화, 재사용이 좋다.
2. Object Oriented Programming
ex) c++, Java 프로그래밍
: 인간의 현실세계를 프로그램에 반영한 것,
즉, 현실세계에 존재하는 객체 개념을 Program에 반영한 것
1) object : 물건, 물체를 의미 유무형의 물체 ex) 집, 사람, 컴퓨터, 정치, 경제, 사회, 공기....
2) object 특징 : 객체는 속성과 행위를 갖는다.
따라서 프로그램에 객체를 반영할 때는 먼저 속성과 행동양식을 뽑아내는 과정이 필요한데 이를 객체 모델링이라 한다.
OOP 순서
1) 프로그램에 필요한 객체를 뽑아냄
2) 객체 모델링
3) 클래스 구성
4) 객체 생성 및 사용
객체 추출 ==> class로 구성
학생, 강사, 직원, 강좌
객체 추출 ==> class로 구성
학생, 강사, 직원, 강좌 (현실 세계의 객체 => Object, Instance)
학생(머리색, 피부색, 학번, 이름 ..)
- 속성(Property) ===> 멤버변수 ===> 명사형 (has a 관계가 성립해야 함)
- 행동양식 ===> 메소드(기능) ===> 동사형
class는 그냥 설계도이다.
class Student{
int num; //Student has a 학번(num)
String name; //Student has a 이름
String tel;
public void register(String subject){
}
public void study(int hour, String subject){
}
}
new 해서 메모리에 올렸을 때 객체다.
Student s1 = new Student(); ===> 객체
class Teacher{
}
class Staff{
}
객체지향 언어의 4대 특징
1. 추상화 - Abstraction
2. 은닉화(캡슐화) - Encapsulation
3. 다형성 - Polymorphism
4. 상속성 - Inheritance
추상화
어떤 물체에서 주된 특징을 부각시켜 표현하고, 나머지 부분은 과감하게 생략하는 것
OOP에서 사용되는 추상화도 이와 비슷하다. 한 물체를 대표하는 속성(명사)과 기능(동사)를 추출해내는 것을 프로그래밍에서는 추상화라고 한다.
ex) 속성 (attribute) : 방수, 주인이름, 지붕색
행위 (behabior): 세를 놓다. 수리하다. 청소하다. 사다. 팔다.
속성은 멤버변수로 행위 또는 기능은 메소드로 표현한다.
h1을 만들면 stack 주소가 저장 Heap에는 House객체가 생성되어 모든 정보를 가지고 있다.
stack은 먼저 만든 것이 밑에 존재한다.
//부동산 어플 만들기
package day10;
/*부동산 어플
관련 객체 - 집, 중개인, 매도자, 매수인, ....
==> 프로그램 세계로 옮긴다. (추상화)
*/
package day10;
/*부동산 어플*/
public class BDSapp {
public static void main(String[] args) {
//클래스 : 객체를 만들어내는 틀 ex) 설계도, 붕어빵틀
//객체 : 클래스에 의해 만들어진 구현을 ex) 집, 붕어빵
House h1 = new House(); //객체 (object, instance)
House h2 = new House();
h1.owner="홍길동";
h1.room=2;
h1.addr="서울 영등포구 당산동";
h1.showInfo();
h2.owner="엄홍길";
h2.room=1;
h2.addr="서울 동대문구 회기동";
h2.showInfo();
House h3 = new House();
h3.owner="성찬훈";
h3.room=5;
h3.addr="서울 영등포구 당산동";
h3.showInfo();
h1.existAt(100);
}
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
package day10;
//집을 추상화 해보자
//속성 (has a 관계가 성립해야 함) => 멤버변수
//행동양식 => 메소드
public class House {
//속성(property, attribute)
//방수 , 주소, 소유주 ...
int room; // House has a room
String addr;
String owner;
//행동 양식(behavior),기능 => method로 구현
public void showInfo() {
System.out.println("ㅡㅡㅡ House 정보ㅡㅡㅡ");
System.out.println("소유주: " +owner);
System.out.println("방 수 : " +room);
System.out.println("주 소 : " +addr);
}
public void existAt(int bunji) {
System.out.println(owner+"의 집: "+addr+" "+bunji+"번지에 위치합니다.");
}
}
'개발자 > 국비지원 SW' 카테고리의 다른 글
국비지원 12일차 - 다형성(오버로딩), 생성자, this(), OracleSQL, SQLDeveloper (0) | 2020.04.27 |
---|---|
국비지원 11일차 - 캡슐화, UML, 명렬줄 인수, 시맨틱 태그 (0) | 2020.04.24 |
국비지원 9일차 - eclipse 설치 및 사용, 배열, border style, 하이퍼링크 스타이, button (0) | 2020.04.22 |
국비지원 8일차 - method(가위바위보), 클래스 멤버(변수), CSS table 위치, Integer api 이용 예제 (0) | 2020.04.21 |
국비지원 7일차 - dowhile 문, break 문, continue 문, JAVA API, CSS외부정의, style selector (0) | 2020.04.20 |