java 43

2022.03.21 다양한 예외 처리

오늘 코드를 설명하기 앞서 우선 기본적인 내용을 먼저 알고 가야 할 것 같습니다 우선 가장 중요한 요점은 IO처리 시 에는 절대로!!!! throws 를 사용하지 않습니다!!! 또한 close( ) 가)가 없으면 서버가 죽어버리는 경우가 생기니 반듯이 close( )가 필요합니다 사용 가능한 예외 처리의 종류는 try~catch finally , try with resource , @Cleanup 가 있다 위 내용들을 숙지하고 코드로 다양한 예외 처리에 대해서 알아보겠습니다 !! Client public class FileClient { //bad code public static void main(String[] args) throws Exception { //소켓 연결 Socket socket = n..

2022.03.21 예외 처리

첫 강의는 예외 처리에 대한 강의였습니다 예외처리란 무엇인가 그리고 어떠할 때 사용해야 하는가에 대해 이야기해보겠습니다 우선 예외 처리가 왜 등장했느냐 바로 객체 지향의 특성 때문입니다 객체지향 그리고 예외처리 이 그림은 보면 A 라는 객체는 B , C , D 랑 연결이 되어있습니다 객체지향은 다양한 연결점이 있기에 다양한 오류 상황이 생깁니다 이런 상황에서 처리를 Return 이 아닌 새로운 방향을 찾은 것이 바로 예외처리입니다 그렇다면 왜 Return 이 아니라 예외처리를 이용할까요? 그것은 Return 은 제한성이 강합니다 그렇게에 사용할때 또한 제한적이죠 그렇지만 예외처리는 그런 면에서 굉장히 자유도가 높습니다 그렇게에 사용되는 것이죠 예외 예외에도 종류가 있습니다 바로 예외 처리하기 와 예외 던..

2022.03.18 입출력 속도

코드 리뷰에 앞서 이 코드는 수업을 위해 bad code로 작성되었습니다 코드 //bad code public static void main(String[] args) throws Exception{ //저장된 사진 불러오기 InputStream inputStream = new FileInputStream("C:\\zzz\\aaa.jpg"); System.out.println(inputStream); //복사본 만들기 OutputStream outputStream = new FileOutputStream("C:\\zzz\\copy.jpg"); //읽고 쓰는 시간 측정하기 위한 //시작점 long start = System.currentTimeMillis(); // 1970-01-01 이 기준점 //배열로..

인터페이스 vs 추상 클래스

⭐둘 다 모두 추상 메소드라는 것을 가집니다 ⭐둘 다 객체 생성은 불가능하고, 타입으로만 사용됩니다 ⭐인터페이스는 스펙이나 원하는 기능을 정의하고자 쓰지만, 추상 클래스는 '상속 + 약간의 강제 성이 목적'입니다 ⭐인터페이스는 상수, 추상 메소드만 존재하지만, 추상 클래스는 상속이 원래 목적이므로 실제 변수나 메소드를 그대로 가지고 있습니다. ⭐인터페이스는 부채만 남겨주지만, 추상 클래스는 재산도 남겨 줍니다 인터페이스는 추상 메소드만 존재하기 때문에 부채 만 잔뜩 던져주게 되지만 추상 클래스는 상속의 원래 기능을 그대로 사용할 수 있습니다. ⭐인터페이스는 다중 상속도 가능하지만, 추상 클래스는 단일 상속만 됩니

JAVA 2022.03.19

추상 클래스(Abstract Class)

추상 클래스의 중요한 개념 추상 클래스(Abstract Class): 객체가 아니라 타입으로만 존재하고 추상 메서드를 가 지는 존재 추상 클래스라는 것은 간단히 말해서 객체 생성은 안 되고 부모 클래스로만 존재하는 클래스를 의미합니다. 즉 변수의 타입이 될 수는 있지만, 객체 생성을 못합니다!! 추상 클래스라는 것은 클래스의 용도가 객체 생성 용도로 사용하지 않는 경우에 사용합니다. 클래스를 객 체 생성의 용도가 아니라면 변수의 타입으로 선언하는 용도와 상속의 본연의 기능으로 특정한 코드를 하 위 클래스로 물려주는 기능을 활용할 때 사용합니다. 추상 클래스는 추상 메소드라는 것을 가질 수 있습니다. 추상 메서드라는 것은 하위에서 '반드시 오버 라이 더하라'는 강제성을 가지는 메서드입니다. 추상 메소드가 ..

JAVA 2022.03.19

2022.03.16 Interpace 활용 <3단 구현> 코드로 보기

Interface Auth public interface Auth { //권한 void execute(); } UI AbstractUI // abstract = 추상클래스 // implement는 interface 상속 //추상클래스를 interface로 한번더 빼준다 (interface가 더 유연하니까) public abstract class AbstractUI implements Auth { private Scanner scanner; public void print(String msg){ System.out.println(msg); } public int inputInt(String msg){ System.out.println(msg); return Integer.parseInt(scanner.ne..

2022.03.16 Interpace 활용 <3단 구현>

마지막 시간에 정말 중요한 내용 값비싼 내용들을 설명해 주셨습니다 우선 시작은 상속보다는 조합을 사용해라!!!로 시작했습니다 그래서 상속의 문제점에 관련해서 왜 Interpace 를 사용해야 하는가 그리고 Interpace는 어떻게 활용하는가에 대해서 지금부터 시작해 보겠습니다 우선 Interpace 의 사용 중에 마킹용 Interpace 라는것이 있습니다 마킹용 Interpace 마킹용 interface는 전혀 의미가 없는 interface를 의미하는데 그 활용은 다른 종류의 전혀 다른 객체를 하나의 타입으로 묶기 위한 존재 로 활용됩니다!!! 그리고 Interpace 또 다른 활용 조합이라는 것이 있습니다 바로 처음에 말했던 상속보다는 조합을 사용해라 는 이곳에서 나온 이야기입니다 상속의 단점 이런 ..

2022.03.16 복습 뱀 게임

오늘은 지난 시간 공부했던 내용들을 복습 삼아 뱀 주사위 게임을 만들어보았습니다 뱀 주사위 게임 설계 복습 삼아 만드는 것이기에 간단하게 진행하신다고 하시네요 (간단 너무 좋아 😘) 설계도는 그렸으니 만들어야 할 것들을 정리해보겠습니다 Class Player , Class Tile 가 먼저 필요할 것 같습니다 이 2가지를 먼저 설계하는 이유는 이 두 가지는 리턴 타입이 될 수 있고 파라미터가 될 수 있고 자료구조가 될 수 있기 때문에 먼저 설계해야 합니다 그 후 Interface PlayerService를 만들고 그 안에는 getNextPlyer 가있고 return 타입으로는 Plyer를 가질 것 같습니다 Interface TileService는 getTile(idx) 를가질것 같습니다 이렇게 설계 순서..

2022.03.15 퀴즈 만들기

퀴즈의 설계는 이런 식으로 해보려고 합니다 헌데 강사님이 말씀하신 것이 부모를 먼저 만드는 것이 아닌 자식을 먼저 만들고 그리고 거기서 중복적으로 사용되는 것들을 부모로 올려서 부모를 만들라고 하셔서 그렇게 진행 보겠습니다 우선 가장 먼저 ox퀴즈를 만들어보았습니다 만들어보니 중복되는 코드가 퀴즈 문제 , 퀴즈 정답 그리고 사용자의 대답 그리고 각 퀴즈를 설명해줄 수 있는 공간 등이 중복적으로 필요하다는 걸 알았습니다 그래서 그친구들을 부모 클래스로 옮겨서 만들었습니다 부모 Class Quiz @Setter public abstract class Quiz { //퀴즈 문제 하위에서도 봐야하기에 protected protected String title; //퀴즈 정답 하위에서도 봐야하기에 protecte..

2022.03.15 Interpace

Interpace 강사님의 Interpace 설명이 참 인상적이었습니다 바로 식당에 비유하셔서 설명해주셨습니다 Interpace 가 다 final , public 인 이유는 바로 손님이 주문할때는 짜장면 1개 짬뽕하나 주세요~ 하지만 웨이터가 주방장 한테는 짜 하나 ~ 짬 하나 ~ 이런식으로 말하는 경우가있습니다 이경우는 주방장과 웨이터간에 짜 는 짜장 짬은 짬뽕이라는 약속이 되어있기때문에 가능한 일입니다 양쪽이 정보를 다 알아야하기에 public 그리고 정보가 변하면 안되기에 final 참 쉽죠? Interpace 의미 위 그림에서 Interpace 의 의미를 찾아볼수있다 이런 상황이 생길수있습니다 주방장이 아파서 다른 주방장이 온겁니다 그런데 웨이터는 그걸 모르고있죠 하지만 문제될것은 없습니다 웨이터..