목록문법/기본 문법 (10)
공부방

I/O 와 Stream I/O : 데이터의 입력(input)과 출력(output) 데이터는 한쪽에서 주고 한쪽에서 받는 구조(일방통행) 입력과 출력의 끝단 : 노드(Node) 두 노드를 연결하고 데이터를 전송할 수 있는 개념 : 스트림(Stream) 스트림은 단방향으로만 통신이 가능, 하나의 스트림으로 입력과 출력을 같이 처리할 수 없음 InputStream / OutputStream : 바이트 형식으로 뽑아내주는 스트림 Reader / Writer : char형으로 뽑아내주는 스트림 byte->image., exe. char->txt. package test01; import java.io.FileInputStream; import java.io.FileNotFoundException; import j..

Error 메모리 부족, stack overflow 와 같이 일단 발생하면 복구할 수 없는 상황->코드를 써서 해결 불가능 프로그램의 비정상적 종료를 막을 수 없음 -> 디버깅 필요 Exception 읽으려는 파일이 없거나, 네트워크 연결이 안 되는 등 수습될 수 있는 비교적 상태가 약한 것들 프로그램 코드에 의해 수습될 수 있는 상황 예외에러 둘 다 어떤 원인에 의해 오동작하거나 비정상적으로 종료되는 경우 코드를 통해서 프로그램의 비정상적 종료를 막을 수 있는가 프로그래밍을 통해서 대체가 가능한가? 그럴 필요가 있는가? 프로그램의 관심사인가? 예외처리 예외 발생 시 프로그램의 비정상 종료를 막고 정상적인 실행 상태를 유지하는 것 예외의 감지 및 예외 발생 시 동작할 코드 작성 필요 쓰는 이유? : 주된..

객체들을 한 곳에 모아두고 편리하게 사용할 수 있는 환경을 제공 정적 자료구조 배열이 대표적인 정적 자료구조 고정된 크기의 자료구조 동적 자료구조 요소의 개수에 따라 자료구조의 크기가 동적으로 증가하거나 감소 ex) 리스트 스택 큐 등 Collection Interface package test01_list; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Vector; public class test01 { public static void main(String[] args) { // List // 순서(index)가 있는 자료구조..
인터페이스 완벽히 추상화된 설계도 : 모든 설계도가 추상 메서드 추상 클래스 : 기본 메서드와 추상 메서드 둘 다 가능 모든 메서드가 public abstract이며 생략 가능 모든 멤버변수가 public static final이며 생략 가능->final : 상수 변수 interface 키워드를 이용하여 선언 클래스에서 해당 인터페이스를 implements 키워드를 이용하여 구현 객체 생성이 불가능 다중 상속 가능 / 다중 구현도 가능 여러개의 interface implements 가능 인터페이스를 구현 받는 하위클래스는 추상 메소드를 반드시 오버라이딩해야 한다.(구현하지 않을 경우 abstract 클래스로 표시해야 함) 인터페이스 다형성 적용 package test01_interface; //클래스는 ..
추상클래스 객체를 생성할 수 없는 클래스 추상 메서드를 갖는 클래스 추상 메서드 : 내용(구현 불가)이 없는 메서드, abstract 키워드->반드시 자식 클래스에서 오버라이드(재정의)해줘야 됨. 상속 전용의 클래스 클래스에 구현부가 없는 메서드가 있으므로 객체 생성 불가능 상위 클래스 타입으로 자식을 참조할 수는 있다.->다형성 조상 클래스에서 상속 받은 abstract 메서드를 재정의하지 않은 경우 클래스 내부에 abstract 메서드가 있으므로 자식 클래스는 abstract클래스가 되어야 함. 사용하는 이유 : abstract 클래스는 구현의 강제를 통해 프로그램의 안정성 향상 package test01; //1. 굳이 객체 생성할 필요 없음 //2. 추상 메서드를 갖는 클래스 //3. abstra..
package test06_many; public class person extends Object{ String name; int age; //파라미터가 있는 생성자 public person(String name, int age) { this.name=name; this.age=age; } public void eat() { System.out.println("음식을 먹는다."); } @Override public String toString() { return "person [name=" + name + ", age=" + age + "]"; } } ================================================================================ pack..

패키지 PC의 많은 파일을 관리하기 위해서 폴더를 이용한다. 프로그램의 많은 클래스를 관리하기 위해서 패키지를 이용한다. 클래스와 관련 있는 인터페이스들을 모아두기 위한 이름 공간 패키지의 이름은 시중에 나와 있는 패키지들과 구분되게 지어야 한다. 패키지의 구분은 .(dot) 연산자를 이용한다. com.ssafy.project_이름.module_이름 패키지 사용 이유 : 정리하기 위해서 / 패키지 단위로 접근 제어 가능 / 클래스를 구별할 수 있다. 임포트 다른 패키지에 있는 클래스를 사용하기 위해서는 import 과정이 필요하다. import 선언할 때는 import 키워드 뒤에 package 이름과 클래스 이름을 모두 입력하거나, 해당 패키지의 모든 클래스를 포함할 때는 '*'를 사용하기도 한다. i..
객체지향 프로그래밍(OOP, Object Oriented Programming) 객체 : 사물과 같이 유형적인 것과 개념이나 논리와 같은 무형적인 것들(개념으로 부분적으로 인식할 수 있는 것들) 객체 단위로 나누어서, 객체 간의 상호작용으로 프로그래밍하는 것 객체 모델링 : 현실세계의 객체를 SW객체로 설계하는 것 ex)학사 관리 시스템 학생 클래스 : 전공, 수강신청 등 과목 클래스 : 담당교수, 커리큘럼, 장소 교수님 클래스 : 수업 교직원 클래스 : 문의 SW객체 : 속성-데이터-변수 행위-알고리즘-메서드 절차적 프로그래밍 : main 함수 안에 모든 로직을 집어넣는 것 객체지향 프로그래밍 장점 : 안정적 / 대규모 프로젝트 / 협업에 유리 / 모듈화된 프로그래밍 / 재사용성이 높다. 특징 추상화 ..

대소문자 변환 public class swea2047 { public static void main(String[] args) { String sentense="The_headline_is_the_text_indicating_the_nature_of_the_article_below_it."; System.out.println(sentense.toUpperCase()); //toUpperCase() -> 소문자를 대문자로 //toLowerCase() -> 대문자를 소문자로 } } 배열 같은 종류의 데이터를 저장하기 위한 자료구조 크기가 고정되어 있음.(한번 생성된 배열은 크기를 바꿀 수 없음) 배열을 객체로 취급(참조형) index 번호는 0부터 시작 배열이름 .length를 통해 배열의 길이 조회 가능(..

운영체제와 프로그램 프로그램 : 컴퓨터에서 실행될 때 특정 작업을 수행하는 일련의 명령어들의 모임(집합) 애니악(ENIAC) : Electroinic Numerical Inthgrator And Computer 운영체제 : 시스템 하드웨어를 관리할 뿐 아니라 응용 소프르퉤어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어 자료구조 어떻게 data structure들을 저장하고 접근하고 수정하는 수단, 방법 배열, 연결리스트, 스택, 큐, 맵, 트리, 그래프 컴퓨터의 자료표현 비트(Bit) : Binary Digit / 컴퓨터 값을 지정할 수 있는 최소 단위 바이트(Byte) : 8비트 / 정보의 최소 단위 자바 가상 머신(JVM, Java Virtual Mach..