package basic;public class HelloWorld {}
package basic;/프로그램명 : FirstEclipseApp작성자 : 홍길동작성일자 : 2022년 09월 14일///행복사 : Ctrl+Alt+↑ 또는 ↓//행이동 : Alt+↑ 또는 ↓/ 이클립스로 만든 첫번째 클래스 \*/public class FirstE
package basic;//리터럴(Literal) : 프로그램에서 사용하기 위해 표현되는 값(Value)//변수(Variable) : 값을 저장하기 위해 메모리(Memory)에 부여된 이름//변수 선언 //형식)자료형 변수명;// => 자료형(DataType) : 변
package basic;//자료형(DataType) : 값이나 특정 대상을 표현하기 위한 키워드 또는 식별자 // => 값이나 특정 대상을 저장하기 위한 변수 생성을 위해 사용//1.원시형(PrimitiveType) : 값을 표현하기 위한 자료형 - 키워드// =>
→ 피연산자 : 연산자에 의해 계산될 값을 의미→ 단항연산자(피연산자 : 1개), 이항연산자(피연산자 : 2개), 삼항연산자(피연산자 : 3개)→ 일반적으로 연산자는 왼쪽에서 오른쪽으로 처리되지만 단항 연산자와 대입 연산자는 오른쪽에서 왼쪽으로 처리 ex) 10+20+
→ 자동 형변환(JVM), 강제 형변환(프로그래머)→ 표현의 범위가 작은 자료형의 값이 커다란 자료형의 값으로 형변환되어 연산→ byte - short - char - int - long - float - double→ int 자료형보다 작은 자료형은 무조건 int 자
→ 선택문(if, switch), 반복문(for, while), 기타(break, continue, return)형식1) if(조건식) { 명령; 명령; ...}→ 조건식의 결과가 참(true)인 경우 {} 안의 명령들을 실행→ {}안에 작성된 명령이 하나인 경우 {}
형식) switch(비교대상) { case 값1 : 명령; 명령; ... case 값2 : 명령; 명령; ... case 값3 : 명령; 명령; ... ... de
형식) for(초기식;조건식;증감식) { 명령; 명령; ... }→ 초기식 : 변수에 초기값을 저장하는 연산식, 증감식 : 변수값을 증가 또는 감소하는 연산식→ 초기식, 조건식, 증감식은 반드시 ;를 이용하여 구분 - ; 기호를 반드시 2번 사용→ 초기식 >> 조건식(
형식) while(조건식){명령;명령;...}→ 조건식의 결과가 참인 경우 블럭 안의 명령을 반복 실행하고 거짓인 경우 반복문 종료→ 조건식 생략 불가능→ 블럭 안의 명령을 0번 이상 반복 실행 - 조건식의 결과가 처음부터 거짓인 경우 반복문 종료형식) do {명령;명
}
→ continue 명령 아래에 작성된 명령을 실행하지 않고 처음부터 다시 실행
System.out : 출력스트림을 사용하여 값을 출력하는 기능을 제공하는 객체 >### System.in : 입력스트림을 사용하여 키보드로부터 전달된 값을 입력하는 기능을 제공하는 객체
●원시형 : 값을 표현하기 위한 자료형 - byte, short, int, long, char, float, double, boolean●참조형 : 특정 대상을 표현하기 위한 자료형 - 배열(Array), 클래스(Class), 인터페이스(Interface), 열거형(E
→ 현실 세계에 존재하는 대상을 모델링하여 클래스로 작성하고 클래스로 객체를 생성하여● 객체의 요소로 프로그램을 작성하는 방법→ 추상화, 캡슐화, 다형성, 상속성●객체 모델링(Object Modeling) : 현실 세계에 존재하는 대사을 속성과 행위로 구분하여 설계
메소드 선언 방법형식) 자료형 메소드명(자료형 변수명, 자료형 변수명, ...) { 명령; 명령; ... }→ 반환형(ReturnType) : 메소드를 호출하여 얻을 수 있는 결과값의 자료형 ※ void : 무반환형 - 메소드를 호출하여 얻을 수 있는 결과값
→ 객체 대신 인스턴스(Instance)로 표현 가능→ 현실 세계의 존재하는 사물을 클래스라는 자료형으로 표현하여 객체로 구현형식) public class 클래스명 { 필드(Field) : 대상의 속성을 표현하여 속성값을 저장하기 위해 선언된 변수(멤버변수) .
→ this 매개변수의 자료형은 메소드가 선언된 클래스→ 메소드를 호출한 객체의 메모리 주소(HashCode)를 자동으로 전달받아 저장하는 참조변수→ 메소드에서 객체의 필드 또는 메소드를 사용하기 위해 this 키워드 사용→ this 키워드를 사용하지 않아도 자동으로
제한자(Modifier) : 기능을 제한하기 위한 키워드→ 접근제한자(private, package, protected, public), static, final, abstract
→ 프로그램에 객체를 하나만 제공하기 위한 목적의 클래스를 작성하기 위해 사용→ 프로그램에 불필요한 객체가 여러개 생성되는 것을 방지할 목적으로 작성
→ UML(Unified Modeling Language)를 사용하여 클래스 다이어그램(Class Diagram)으로 표현 1.일반화 관계(Generalization) : 상속 관계(is a 관계) → 클래스 선언시 기존 클래스를 상속받아 작성→ 사원클래스와 관리자클래
→ 기존 클래스를 재활용하여 보다 빠르고 쉽게 새로운 클래스 작성 : 프로그램의 생산성 증가→ 공통적인 속성과 행위를 가진 다수 클래스 작성시 공통적인 속성과 행위가 선언된 클래스를 상속받아 작성 : 유지보수의 효율성 증가● 물려주는 클래스 : 부모클래스, 선조클래스,
→ Object 클래스로 생성된 참조변수에는 모든 클래스로 생성된 객체 저장 가능
→ 객체에 상관 없이 클래스로 접근하기 위해 사용하는 제한자1.final 필드 - final 제한자를 사용하여 선언한 필드형식) 접근제한자 final 자료형 필드명=값;ex) Math 클래스 >> public static final double PI : 원주율을 제공하
→ private, package(default), protected, public→ 클래스 내부에서만 접근 가능하며 클래스 외부에서는 접근 불가능
→ 모든 패키지의 클래스에서 접근 가능하도록 설정→ public 클래스가 아닌 경우 다른 패키지에 클래스에서 접근 불가능 - 에러 발생→ 소스파일에 public 클래스는 하나만 작성 가능
→ 클래스,필드,메소드 작성시 접근제한자 관련 키워드를 사용하지 않으면 package 접근제한자로 설정→ 같은 패키지의 클래스에서 접근 가능하도록 설정→ 다른 패키지의 클래스에서 접근할 경우 무조건 에러 발생
→ 같은 패키지의 클래스에서 접근 가능하도록 설정→ 다른 패키지의 클래스에서 접근할 경우 에러 발생되지만 상속을 사용하면 접근 가능
→ 상수필드(Constant Field)와 추상메소드(Abstract Method)만 선언 가능→ JDK8 이상에서는 기본메소드(Default Method)와 정적메소드(Static Method)도 선언 가능→ 인터페이스의 이름은 파스칼 표기법을 이용하여 작성하는 것을
→ 라이브러리를 이용하여 배포된 클래스, 인터페이스, 열거형→ java.lang 패키지의 클래스 또는 인터페이스는 import 처리하지 않아도 사용 가능●Object 클래스 : 모든 Java 클래스가 반드시 상속받는 부모클래스●System 클래스 : 표준 입출력 객체
→ 문자열을 저장하기 위한 객체 생성→ String 객체에 저장된 문자열에 대한 다양한 기능을 메소드로 제공→ String 객체는 문자열을 내부적으로 byte 배열로 처리하여 배열 요소에 문자를 하나씩 저장
→예외가 발생된 경우 예외가 발생된 지점에서 프로그램 강제 종료→예외가 발생되어 프로그램가 강제로 종료되는 것을 방지하거나 프로그램이 강제로 종료된 이유를 알기 위해 예외처리(ExceptionHandle) 필요●예외를 처리하기 위해 Java에서는 다양한 예외클래스를 제
→ 라이브러리를 이용하여 배포된 클래스, 인터페이스, 열거형→ java.lang 패키지의 클래스 또는 인터페이스는 import 처리하지 않아도 사용 가능◎Object 클래스 : 모든 Java 클래스가 반드시 상속받는 부모클래스◎System 클래스 : 표준 입출력 객체
→ 문자열을 저장하기 위한 객체 생성→ String 객체에 저장된 문자열에 대한 다양한 기능을 메소드로 제공→ String 객체는 문자열을 내부적으로 byte 배열로 처리하여 배열 요소에 문자를 하나씩 저장
→ Byte, Short, Integer, Long, Float, Double, Character, Boolean
→ String 객체는 저장된 문자열을 메소드로 직접 처리하지 않고 문자열 자체를 처리하는 메소드 제공→ StringBuffer 객체에 저장된 문자열을 직접 처리하는 메소드 제공→ String 클래스보다 StringBuffer 클래스의 메소드가 문자열의 처리 속도가 우
→ JVM에 의해 생성된 main 스레드를 이용하여 main() 메소드의 명령 실행→ main() 메소드가 종료되면 main 스레드는 자동 소멸 - 프로그램 종료
→ 프로그램 개발자가 스레드를 직접 생성하여 여러 명령을 동시에 실행되도록 만든 프로그램→ 프로그램의 모든 스레드가 소멸되면 프로그램 종료→ GUI 프로그램, Web 프로그램 등은 다중 스레드 프로그램으로 작성1.Thread 클래스를 상속받은 자식클래스 작성2.Thre
→ 동일한 다수의 스레드가 run() 메소드의 명령을 동시에 실행할 경우 메소드를 호출하여 필드값(공유)을 변경하면 잘못된 결과 발생 가능◎스레드 동기화(Thread Synchronized) : 스레드에 의해 메소드 호출시 메소드의 모든 명령을 모두 처리하기 전까지 다
◎Scanner 클래스 : 입력장치로부터 값을 입력받기 위한 기능을 메소드로 제공하는 클래스◎Arrays 클래스 : 배열 요소를 처리하기 위한 기능을 메소드로 제공하는 클래스◎Random 클래스 : 난수값 관련 기능을 메소드로 제공하는 클래스◎Date 클래스 : 날짜와
◎숫자야구게임 : 정수난수(0~9)를 3개 제공받아 키보드로 입력하여 맞추는 게임→ 난수와 키보드 입력값은 0~9 범위의 3개의 정수값으로 서로 다르며 0으로 시작 불가능→ 키보드 입력값이 형식에 맞지 않은 경우 재입력되도록 작성→ 난수와 입력값을 서로 비교하여 동일한
Date 클래스 : 날짜와 시간을 저장하고 날짜와 시간 관련 기능을 메소드로 제공하기 위한 클래스
Calendar 클래스 : 날짜와 시간을 저장하고 날짜와 시간 관련 기능을 메소드로 제공하기 위한 클래스
◎SimpleDateFormat : Date 객체와 String 객체를 서로 변환하기 위한 기능을 메소드로 제공하는 클래스◎DecimalFormat : Number 객체(숫자값)와 String 객체를 서로 변환하기 위한 기능을 메소드로 제공
→ Object 클래스의 필드에 모든 클래스의 객체를 전달하여 저장 가능→ Object 클래스의 필드에 저장된 객체를 반환받아 사용할 경우 반드시 명시적 객체 형변환 후 사용
→ 참조형 선언시 <> 기호에 제네릭 타입(식별자) 선언형식) public class 클래스명<제네릭,제네릭,...> {}→ <>안에 제네릭 타입은 , 기호를 사용하여 나열 선언 가능→ 제네릭 타입의 식별자는 대문자로 작성하는 것을 권장◎제네릭으로 전달
→ 다수의 객체를 효율적으로 저장하고 관리하기 위한 기능을 제공하는 클래스→ Set 인터페이스, List 인터페이스 ,Map 인터페이스 중 하나를 상속받아 작성된 자식클래스→ 객체의 저장 순서가 없으며 동일한 객체 중복 저장 불가능
→ 이름(Key - 식별자)과 값(Value- 객체)을 하나로 묶어 자료구조 클래스의 객체에 저장하여 사용→ 엔트리(Entry) : 이름과 값을 하나로 묶어 사용하는 처리 단위→ 이름을 이용하여 값을 빠르게 검색하여 사용하기 위한 자료구조 클래스→ Map 객체의 이름은
→ List 객체는 요소를 차례대로 저장 - 첨자(Index)를 이용하여 요소 구분하여 처리
→ 객체의 컬럼값을 비교하기 위한 기능을 제공받기 위해 Comparable 인터페이스를 상속받아 작성
^문자 : 문자(열)로 시작됨을 의미문자$ : 문자(열)로 종료됨을 의미. : 임의의 문자 하난를 의미(\\ 문자 표현 불가능)문자1문자2문자3 : 나열된 문자들 중 하나를 의미^문자1문자2문자3 : 나열된 문자들이 아닌 문자 중 하나를 의미문자1-문자2 : 문자1부터
→ 컴퍼넌트를 이용하여 작성된 프로그램◎java.awt 패키지 : GUI 프로그램을 작성하기 위한 클래스가 선언된 패키지→ 운영체제(OS)에 종속된 컴퍼넌트 제공◎javax.swing 패키지 : GUI 프로그램을 작성하기 위한 클래스가 선언된 패키지→ 운영체제와 별개의
컴퍼넌트와 컨테이너 관련 클래스를 이용하여 디자인 클래스 작성 - UI 구현→ Frame 클래스를 상속받아 작성→ 컴퍼넌트 또는 컨테이너에서 다양한 이벤트 발생 - XXXEvent 클래스 : 이벤트 정보를 저장하기 위한 클래스→ 이벤트 소스(Event Source) :
java.awt 패키지의 컴퍼넌트 또는 컨테이너 관련 클래스 대신 javax.swing 패키지의 컴퍼넌트 또는 컨테이너 관련 클래스를 사용하여 UI 구현→ AWT 컴퍼넌트 또는 컨테이너 클래스 이름 앞에 J를 붙이면 Swing 컴퍼넌트 또는 컨테이너 클래스 프레임의 닫
→ 시냇물이 흐르는 모양을 모델링하여 값이 한쪽 방향으로만 전달되며 순차적으로 처리→ 값을 1Byte 단위로 입력 또는 출력하기 위한 스트림→ InputStream 클래스와 OuputStream 클래스를 최상위 클래스로 하는 자식클래스
→ 원시데이터를 가공 처리하여 문자데이터로 변화 : 인코딩 - 문자형태(캐릭터셋 - CharSet)→ 값을 2Byte 단위로 입력 또는 출력하기 위한 스트림→ Reader 클래스와 Writer 클래스를 최상위 클래스로 하는 자식클래스를 이용하여 생성
File 클래스 : 파일(디렉토리 - 폴더) 관련 정보를 저장하기 위한 클래스
Serializable 인터페이스를 상속받아 선언→ 객체의 모든 필드값을 byte 배열로 변환하여 입력 또는 출력 처리Externalizable 인터페이스를 상속받아 선언→ writeExternal(ObjectOutput out) 메소드와 readExternal(Obj
◎프로토콜 구조 : 네트워크 계층 > 인터넷 계층(IP) > 전송 계층(TCP, UDP) > 응용 계층(FTP, HTTP, SMTP 등)◎네트워크 계층 - 네트워크 관련 장치 : 이더넷(Ethernet), 라우터(Route), 스위치허브(Switch Hub) 등→ 이더
→ 서버와 클라이언트가 소켓을 사용하여 1:1로 연결되어 데이터를 송수신하는 네트워크 프로그램→ ServerSocket 클래스를 사용하여 서버 프로그램 작성→ Socket 클래스를 사용하여 클라이언트 프로그램 작성