Java-diary
-
ArrayJava-diary/REFERENCE TYPE 2020. 3. 27. 21:11
요약 array정의 변수의 반복사용을 효율적으로 줄이는 기능 변수와 배열 비교 stack과 heap array 선언 자료형[] 변수명 또는 자료형 변수명[] 정의, 변수명 = new 자료형[n] array와 반복문 FOR(조건){m[i] = for문의 변수를 이용한 수식} 규칙성이 없는 경우 int[]a = {수} Java Data Type ㄴ Reference Type ㄴ Class Type ㄴ Interface Type ㄴ Array Type ㄴ Enum Type ㄴ etc. -------------------------------------------------------------------------------------------------------------------------------..
-
[완성도-1단계][객체지향 4대 특성]캡슐화Java-diary/REFERENCE TYPE 2020. 3. 15. 13:43
정의 객체를 안전하게 감싸서 사용하는 방법으로 객체 지향 언어의 특성 객체에 직접 접근하는 것을 방지 PRIVATE와 GETTER SETTER로 이루어짐 사용법 보호하고 싶은 요소의 변수 앞에 private 지정 setter 지정 -접근하려는 사람이 값을 입력하는 것을 받아오고 조건문으로 권한에 따라 수정 가능여부를 판단 후 일치한다면 수정하는 과정 getter 지정 - 바뀐 값을 다시 사용자에게 보여주도록 return. reuturn 값은 바로 바뀌게 된 이름일 수도 있고 setter에서 권한에 준해 일부만 바뀐 후의 값을 return 할 수도 있음. 장점 1.문법적 일관성 제공 멤버 변수에 접근할 때 항상 함수를 통해 접근한다는 일관성을 제공한다. 2.읽기 전용,쓰기 전용 등에 대한 성질을 부여할 수..
-
[객체지향 4대 특성] 추상화,다형성Java-diary/REFERENCE TYPE 2020. 3. 15. 13:32
정의 구체적인 사실들을 일반화 시켜 기술한 것 추상 class 상속 목적으로 개념상 존재하는 클래스가 객체가 생기는 것을 막기위해 class에 abstract를 넣어준다. -ex)공통점을 묶어 놓은 포유류라는 분류가 존재하는 것이지 객체는 없다. - 추상 method 새로운 하위 class를 만들 때 하나의 틀로 작용하는 것. 하위 class에서 overriding을 통해 기능 구현을 한다. *추상화 주의할 점 추상 method에서 매개변수는 지정해주어야 한다. 수정할 수 있는 것은 body이다. overriding을 위해서는 ()안의 매개변수 순서에 따라 식별하기 때문 *Interface와 상속 비교 추상 클래스는 슈퍼클래스의 기능을 이용하거나 확장하기 위해 사용되고 인터페이스는 인터페이스를 구현한 객..
-
[INTERFACE] Runnable InterfaceJava-diary 2020. 3. 15. 13:20
정의 Thread ? 메모리를 할당 받아 실행중인 프로그램을 프로세스라고 하는데 프로그램 내에서 실행되는 흐름의 단위를 Thread라고 한다. multi thread 하나의 환경에서 여러개의 일을 하는 것. multi thread환경을 만드는 방법 2가지 1.thread 상속 2.Runnable interface Runnable 구현 방법 1) Runnable class를 구현한다. 2) run() override를 한다. 3) 변수 선언을 한다. 4) thread class를 instance 한다. 5) 객체이름.start();를 한다. *Runnable의 단계가 더 복잡한데 그래도 사용하는 이유 ? java에선 상속은 하나의 class 밖에 못하지만 구현은 여러가지를 할 수 있어서 사용의 제약이 적다.
-
[INTERFACE] INTERFACEJava-diary 2020. 2. 9. 23:43
정의 동일한 목적 하에 동일한 기능을 수행하게끔 강제하는 것 자바의 다형성을 극대화하여 개발코드 수정을 줄이고 프로그램 유지보수성을 높이고자 사용 *다중 상속 하위 클래스 하나가 상위 클래스 여러개와 연결되어 상위 클래스들의 기능을 하위 클래스에서 사용할 수 있도록 만드는 것 특징 상수와 abstracts method로만 이루어져 있다. -method body가 없다.- method는 public abstracts여야만 한다. 멤버변수는 public static final이여야만 한다. interface class 선언 시 public으로 선언하는 것이 일반적이다. interface는 interface로만 상속받을 수 있으며 일반 class와 달리 다중 상속이 가능하다. *상수와 abstracts met..
-
[Class]/[Java i/o] 객체의 직렬화Java-diary/REFERENCE TYPE 2020. 2. 7. 17:59
정의 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용 할 수 있도록 byte형태로 데이터를 변환하는 기술 -JVM의 메모리에 상주(힙 또는 스택) 되어 있는 객체 데이터를 바이트 형태로 변환하는 기술- 바이트로 변환된 데이터를 다시 객체로 변환하는 기술(역직렬화) -직렬화된 바이트 형태의 데이터를 객체로 변환 해서 JVM으로 상주시키는 기술- *나오게 된 배경 자바 I/O 처리는 정수,문자열,바이트 단위의 처리만 지원했었다. 복잡한 객체의 내용을 저장/복원하거나,네트워크로 전송하기 위해서는 객체의 멤버변수의 각 내용을 일정한 형식(패킷)으로 만들어 전송해야 했다.객체 직렬화는 객체의 내용을 자바 I/O가 자동적으로 바이트 단위로 변환하여,저장/복원하거나 네트워크로 전송할 ..