공부 중/Java(12)
-
[Java] File IO
1. 노드스트림 노드 : 입력과 출력의 양 끝단 스트림 : 두 노드를 연결하고 데이터를 전송할 수 있는 개념 : 단방향 통신 입력 스트림 : InputStream, Reader 출력 스트림 : OutputStream, Writer byte 단위 InputStream OutputStream char 단위 Reader Writer 가. InputStream System.in도 InputStream 타입이다. 메서드 설명 read() byte 하나를 읽어서 int로 반환. 더 이상 읽을 값이 없으면 -1 반환. read(byte[] b) 데이터를 읽어서 b에 넣고 읽은 바이트의 개수를 반환. 더 이상 읽을 값이 없으면 0 반환. read(byte[] b, int offset, int len) 최대 len 만큼..
2024.01.29 -
[Java] 람다식
1. Lamda 표현식 public class SamTest { SamTest(){ Sam s = new Sam(); InterImpl impl = new InterImpl(); s.m1(impl); } public static void main(String[] args) { new SamTest(); } } public class Sam { void m1 (Inter inter) { int res = inter.calc(1, 2); System.out.println(res); } } public class InterImpl implements Inter { @Override public int calc(int a, int b) { return a+b; } } public interface Inter {..
2024.01.28 -
[Java] Collection
1. Collection Framework 데이터를 저장하기 위한 개발자들의 몸부림. 배열 : 동일한 데이터 타입만 관리 가능 Object 배열 : 런타임에 실제 객체의 타입 확인 후 사용해야 함. Generic : 형변환의 번거로움 제거 한계점 : 한번 정해진 배열의 크기를 변경할 수 없다. 이미지 출처 : https://beginnersbook.com/java-collections-tutorials/ 모든 Collection은 Iterator interface를 구현한다. Iterator는 3 가지 메서드를 가지고 있다. 이러한 기능을 조합하면 다수의 데이터를 순차적으로 처리할 수 있다. Iterator (Java Platform SE 7 ) An iterator over a collection. I..
2024.01.28 -
[Java] 예외 처리
1. 예외 처리 심각도 : Error > Exception Error Exception 상황 프로그램을 잘못 작성 자바가 해결할 수 없는 심각한 오류 프로그램을 잘못 작성한 경우 프로그램의 작성 의도와 달리 사용되는 경우 자바가 처리할 수 있는 오류 대처 디버깅으로 코드 개선 디버깅으로 코드 개선 예외 처리 코드로 상황 수습 예 메모리 부족, stack overflow 등 null인 객체의 사용, 1/0, 읽으려는 파일이 없음. 예외 처리 exception handing 예외 발생 시 프로그램의 비정상 종료를 막고 정상적인 실행 상태로 복구하기. 가. 예외 클래스의 계층 출처 : https://www.shiksha.com/online-courses/articles/exception-handling-in-..
2024.01.28 -
[Java] String
1. String 객체의 불변의 원칙 String 문자열은 불변한다. String ss = "java"; ss = "algo"; ”java”는 “algo"로 변하지 않는다. 값이 “java”와 “algo”인 2개의 String 객체를 생성한다. ss는 참고값만 바꾼다. ss = ss.toUpperCase(); toUpperCase() : 모든 소문자를 대문자로 만든 String 객체를 반환한다. 하지만 기존의 객체(ss)는 변하지 않는다. toUpperCase()가 새로운 문자열을 결괏값으로 반환할 뿐이다. public class ST { ST(){ String s = "j"; m1(s); System.out.println(s); StringBuilder sb = new StringBuilder("A")..
2024.01.22 -
[Java] 인터페이스
1. abstract class 가. 추상 클래스 정의 클래스들의 공통 모듈을 모아서 상속 구조로 정리 public class Vehicle { private int curX, curY; public void reportPosition() { System.out.printf("차종: %s: 현재 위치: (%d, %d)%n", curX, curY); } public void addFuel() { System.out.println("모든 운송 수단은 연료가 필요"); } } public class ElectricCar extends Vehicle{ private int curX, curY; public void reportPosition() { System.out.printf("차종: %s: 현재 위치: (..
2024.01.22 -
[Java] 다형성
다형성에 대하여 정리하기 전에 접근제한자를 활용하는 거 조금 공부함. 1. 접근제한자 활용 가. Encapsulation 데이터를 외부에 직접 노출시키지 않고 메서드를 이용해 보호할 수 있다. 변수는 private로 접근 제한. getter와 setter 메서드를 통해서 접근하도록 한다. class UserInfo { private String name = "대상혁"; private int account = 10000; public String getName() { return name; } public void setName(String name) { if(name == null) { System.out.println("name은 not null!!"); return; } this.name = name..
2024.01.22 -
[Java] 상속
1. 상속 가. 객체지향 언어의 특징 특성 내용 추상화 현실의 객체를 추상화 해서 클래스를 구성한다. 다형성 하나의 객체를 여러 가지 타입으로 참조할 수 있다. 상속 부모 클래스의 자산을 물려받아 자식을 정의함으로 코드의 재사용이 가능하다. 캡슐화 데이터를 외부에 직접 노출시키지 않고 메서드를 이용해 보호할 수 있다. 나. 상속 Inheritance 상위 클래스의 멤버를 하위 클래스에서 재사용하기 위함. 유지보수성 향상 extends 키워드 사용. 부모의 생성자와 private 제한자가 붙은 경우는 상속되지 않음. public class Person { String name; void eat() { System.out.println("냠냠"); } void jump() { System.out.printl..
2024.01.21