PreSTC JAVA강의

  JAVA - 객체지향언어(Object Oriented Programming Langauge)

  • JAVA의 개발자들은 어떤 컴퓨터에서도 동작하기를 원했다.( 플랫폼 비 종속적인 언어를 개발하기를 원했다.)
  • 자바소스는 자연어로 작성한다. 인터프리터 (런타임에 컴파일이 일어난다,) 언어이다.
  • 자바소스를 바이트 코드로 (class 반쯤 번역) 해놓고 번역기(JVM) 에서 완젼히 번역을 한다,
  • 개발자는 JAVA C 와 JAVA가 모두 필요하고 사용자는 오직  JAVA만 사용한다. J

 



  • -> Reusablity (재사용성)가 중요하다.

  • ex) 도서대여점.
    '미녀와 야수' 에서 주전자, 시계 = 물체 (인물X)
    즉 객체 => 사물을 기준으로 추상화를 해 나갈 필요가 있다.

    고객 삭제,등록-> 고객명부에서 가지고 있다.
    그럼 유저는 고객명부의 기능을 호출해서 사용하면 된다(메세지 호출)
    고객 - 이름, 연락처, 주민번호등...
    but 이게 미용실의 고객정보라면 도서 대여점의 고객정보와는 다르다.

    중요한건 남기고
    중요하지 않은건 버린다 -> 추상화(Abstration)


    모든 객체가 재사용되는 것은 아니다.
    (즉 모든 객체를 재사용하기 위한 노력을 할 필요가 없다)
    그래서 추상화의 과정을 통해 해당하는 경우에
    적절한 객체를 만들어 내는게 중요하다.

    Waterfall Process Development(폭포수 모델)
    - 도메인 지식이 많이 필요하며 단계별 구분이 명확한 개발 프로세스.
    요구사항분석->분석->설계->구현->Test->통합

    설계! 가 중요하다. 단순한 코더가 되고 싶지 않다면.

    ex)
    건축도면(건축기호로 추상화) - 실제 건물(구체화)

    Class(JAVA 문법)
    Object or Instance (객체,entity) on Memory! (폰노이만 아키텍처의 컴퓨터 에서는
  • 프로그램은 메모리 위에서 동작한다.) -메모리위에 해당 클래스를 구체화 시켜놓은 객체이다.
  • Instance(TV)를 가르키는 Reference(리모콘) 변수가 존재한다.
  •  
  • 요구사항분석(고객이 이해당사자가 된다)
  • 분석(역시 고객이 중요함)
  • 설계(개발자 중심의 모델이 될 수 밖에 없다)


클래스 -> 명사

속성(attributes) 행위(methods-operations)

포함이 되는 명사는 속성이 될 가능성이 높다( 물론 클래스가 되는 경우도 있다)

동사는 행위가 된다,

  

설계? 이치에 맞게. 근거가 있어야한다.

근거가 없으면 이해가 어렵고, 이해가 어려우면 재사용이 어렵다.

UML의 목적은 스케치이다!


 

aggregation은 한쪽이 없어져도 상관이 없을때 ( 부분과 전체가 생과사를 같이 하지 않을 때)

composition은 한족이 없어지면 나머지도 사용할 수 없을때 (부분과 전체가 생과사를 같이함)


1.jpg

마름모 꼴이 전체  Ball은 부분.


클래스 이름은  대문자로 시작한다.

ex) LottoMachine

클래스의 attributes는 자바에서 Field 라고 한다.

클래스의 operation은 자바에서 Method 라고 한다.


프로그래밍을 한다???! --> 클래스를 고려한다 -> 클래스를 고려한다?! ->

(클래스간의 관계를 생각한다.) - > 다음은 해당하는 클래스의 오퍼레이션(행위)을 먼저 생각한다.


자바환경설정 파일.

2.jpg 



 *.class 파일들은 쉽게 역컴파일 될 수 있으므로 패스워드등의 개인정보를 담지 않도록 주의 해야한다.

 JAVA가 실행되기 위해서는 main메소드가 필요하다.(JAVA 스펙의 일부분이다.)


프로그램 시작점. 어떤 클래스에 들어가도 상관이 없다. 
JAVA Cal 라고 하였다면, Cal에는 main메소드가 있어야 한다.
public static void main(String args[]){
System.out.println("Hello, Cal~");
자바표준출력
                                                                                                                                                                                                                                                                               System.in = 자바 표준 입력.


java Cal

  1. CLASSPATH에서 Cal.class 찾는다.

    " . " -> 현재 디렉토리를 나타낸다.

  2. PERM 이라는 메모리 영역으로 Cal.class의 사본을 만든다.(ClassLoader -  디스크에 저장되어있는 것을 메모리에 올려준다.)

    클래스를 사용하는 순간 해당 클래스는  PERM 영역으로 올라간다.

  3. Static 한 것중에서 main을 찾아서 한줄 한줄 실행.

System.out은 static함수라서 사용할 수 있다,

  1.  Static한 필드와 메소드를 사용할 수 있음.
  2. Static하기 때문에 아무나 사용할  수 있는것.


Static 메소드 필드는 Class영역으로 올라가고

일반 메소드 필드들은 PERM영역으로 올라간다. (해당 객체를 통해서 접근을 한다.)


즉 Static 함수들은 어디서나 실행가능 or 사용가능



과제

1부터 100까지 더하는 프로그램(for)

1부터 100까지 짝수의 합을 구하는 프로그램(while)

1부터 100까지 홀수의 합을 구하는 프로그램(do while)

 

 








트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://nokid.egloos.com/tb/1958028 [도움말]

덧글

덧글 입력 영역