0104. 네트워크 프로그래밍 구현 test

CHOISUJIN·2023년 1월 5일
0

[상속]

다른 클래스가 가지고 있는 멤버(필드, 메소드)들을 새로 작성할 클래스에서 직접 만들지 않고 상속 받음으로써 새 클래스가 자신의 멤버처럼 사용할 수 있는 기능

  • 장점
  1. 보다 적은 양의 코드로 새로운 클래스 작성 가능
  2. 코드를 공통적으로 관리하기 때문에 코드의 추가 및 변경 용이
  3. 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여

<오버라이딩>

자식 클래스가 상속받은 부모 메소드를 재작성하는 것

접근제어자를 부모 것보다 같거나 넓은 범위로 변경 가능

부모 메소드의 예외처리 클래스 처리범위보다 좁은 범위로 예외처리 클래스 수정 가능

Annotation —> @Override

  • 성립조건
  1. 메소드 이름 동일
  2. 매개변수의 개수, 타입, 순서 동일
  3. 리턴 타입 동일
  4. private 메소드 오버라이딩 불가

<오버로딩>

한 클래스 내에서 같은 이름의 메소드를 여러 개 정의하는 것

  • 성립조건
  1. 메소드 이름 동일
  2. 매개변수 개수, 타입, 순서 다름
  3. 리턴타입 상관없음

[다형성]

  • 업 캐스팅

부모타입의 참조형 변수가 모든 자식 타입 객체의 주소를 참조할 수 있음

  • 다운 캐스팅

부모 참조형 변수를 가지고 자식의 멤버를 참조해야 할 경우, 부모 클래스 타입의 참조형 변수를 자식 클래스 타입으로 형변환 하는 것

<추상 abstract>

추상 클래스

몸체 없는 메소드(추상 메소드)를 포함한 클래스 (미완성 설계도)

  • 특징
  1. 미완성 클래스 abstract -> 자체적으로 객체 생성 불가 : 반드시 상속하여 객체 생성

  2. abstract 메소드가 포함된 클래스는 반드시 abstract 클래스

    abstract 메소드가 없어도 abstract 클래스 선언 가능

  3. 클래스 내에 일반 변수, 메소드 포함 가능

  4. 객체 생성은 안되지만 참조형 변수 타입으로는 사용 가능

  • 장점
  1. 일부 기능의 구현을 강제화

<인터페이스>

  • 특징
  1. 모든 인터페이스의 메소드는 묵시적으로 public abstract
  2. 변수는 묵시적으로 public static final
  3. 객체 생성은 안되나 참조형 변수로는 가능(다형성)

[예외 처리]

Unchecked Exception (선택적 예외처리)

-Exception

  • RuntimeException
  1. ArithmeticException

    : 0으로 나누는 경우 발생

    if문으로 나누는 수가 0인지 검사

  2. NullPointerException

    : Null인 참조 변수로 객체 멤버 참조 시도 시 발생

    객체 사용 전에 참조 변수가 null인지 확인

  3. NegativeArraySizeException

    : 배열 크기를 음수로 지정한 경우 발생

    배열 크기를 0보다 크게 지정해야 함

  4. ArrayIndexOutOfBoundsException

    : 배열의 index 범위를 넘어서 참조하는 경우

    배열명.length를 사용하여 배열의 범위 확인

  5. ClassCastException

    : Cast 연산자 사용 시 타입 오류

    instanceof 연산자로 객체타입 확인 후 cast연산

  6. InputMismatchException

    : Scanner를 사용하여 데이터 입력 시 입력받는 자료형이 불일치할 경우 발생

Chcked Exception (예외처리 필수)

Exception

-IOException

  1. FileNotFoundException

[컬렉션]

  • 배열의 문제점
  1. 한번 크기를 지정하면 변경할 수 없다
  2. 배열에 기록된 데이터에 대한 중간 위치에 추가, 삭제가 불편하다
  3. 한 타입의 데이터만 저장 가능하다
  • 컬렉션의 장점
  1. 저장하는 크기의 제약이 없다.
  2. 추가, 삭제, 정렬 등의 기능 처리가 간단하게 해결된다
  3. 여러 타입의 데이터가 저장 가능하다

ArrayList

  • 순서를 유지하고 저장
  • 중복 저장 가능

List studentList = new ArrayList();

HashSet

  • 순서를 유지하지 않고 저장
  • 중복 저장 안됨

Set이 중복을 확인하는 방법

—> equals() , hashcode()가 반드시 오버라이딩 되어 있어야 함

Set set = new HashSet();

HashMap

  • 키(Set)와 값(List)의 쌍으로 저장
  • 키는 중복 저장 안됨

Map<Integer, String> map = new HashMap<Integer, String>();

List< Map<String, Object> >list = new ArrayList< Map<String,Object> >();

네트워크

소켓 : 프로세스 간의 통신에 사용되는 양쪽 끝 단

프로토콜 : 컴퓨터 간의 정보를 주고 받을 때의 통신방법에 대한 규약으로, 접속이나 전달 방식, 데이터의 형식, 검증방법 등을 맞추기 위한 약속

TCP : 데이터의 전달의 신뢰성을 최대한 보장

UDP: 데이터의 빠른 전달

profile
매일매일 머리 터지는 중 ᕙ(•̀‸•́‶)ᕗ

0개의 댓글