본문 바로가기

IT /1) 자바30

자바독학) 파일 저장, IO, file, write, Stream(InputStream, OutputStream) 프로젝트명 : H2_IO 패키지명 : file 클래스명 : B1_File IO를 배우겠습니다!! Input, Output의 줄임말로 입출력을 위한 스트림입니다. Stream이란? 데이터를 입출력하기 위한 통로! 데이터가 이동하는 통로라고 생각해주세요!! JVM에서 콘솔로 값을 내보내면 Output 콘솔에서 JVM이 값을 받으면 Input입니다 여기서 JVM이란? 자바의 가상 머신입니다. 프로그램에 필요한 메모리를 용도에 따라 여러 영역으로 나누는 놈인데 자세히 파고들면 좀 어렵습니다! 파일을 쓰거나, 읽어 들이는 형태를 IO라고 합니다. 가볍게 File부터 보겠습니다. String path = "E:\\JAVA/file" 폴더, 파일을 구분하는 것은, 역슬래시 두 개\\ 혹은 슬래시 한 개/입니다. 폴더.. 2019. 11. 1.
자바독학) 무제한 배열 ArrayList (Collection FrameWork) 프로젝트명 : H1_ArrayList 패키지명 : arraylist 클래스명 : B1_ArrayList ArrayList : 배열과 같지만, 크기가 정해져 있지 않은 리스트 구조 이전에 배운 Set, Map 모두 크기가 정해져 있지 않았으며 Set의 경우 .add()를 통해, Map의 경우 .put()을 통해 인덱스를 추가했습니다. ArrayList의 경우 배열을 사용할 때, 즉, 방이 몇 개가 필요할지 모를 경우 사용하겠습니다. ArrayList list = new ArrayList(); arraylist 생성해 보겠습니다 제너릭 타입을 받아야 하네요! 빠르게 설명드리겠습니다 ArrayList의 경우 방의 크키는 .size()를 통해 확인합니다. 아무것도 없는 상태는 0이겠죠? .add()를 통해 방을.. 2019. 10. 30.
자바독학) Collection FrameWork-Set,Get 프로젝트명 : G9_Set 패키지명 : set 클래스명 : B1_Set Set 배워보겠습니다. Collection FrameWork라는 리스트 형식의 데이터들을 보관하는 장소가 있습니다. 리스트 형식은.... 가볍게 배열?이라고 생각하시면 되겠는데 추후에 배울 예정이니 일단은 배열 같은 거! 배열과 같지는 않은데... 유사하다고 해야 하나..? Set은 Java.Util패키지에 존재하는 인터페이스입니다. 특정 코드에서 중복된 값을 허용하지 않을 때 사용합니다. Set에는 대표적으로 HashSet, TreeSet이 있습니다. HashSet을 자동완성을 사용하여 만들어보면 HashSet hs = new HashSet(); 이러한 모양이 나옵니다. 물론 hs는 제가 지은 이름입니다! 여기서 는 제너릭 타입이라.. 2019. 10. 28.
자바독학) Thread,Runnable,Daemon 프로젝트명 : G8_Thread 패키지명 : runnable 클래스명 : RunnableMain, Thread1 runnable 배워보겠습니다. 기존까지는 extends를 사용하여 Thread를 상속받았습니다. 상속은 한 개만 가능하니 여러 개를 사용할 수 있는 implements를 사용하여 Thread를 구현하는 방법을 알아보겠습니다. implements를 사용하면 interface와 같이 무언가를 오버라이딩해야 합니다. 오류가 발생하고 있죠?? 마우스 올려서 메서드를 추가하겠습니다. 무언가를 오버라이딩 하는 거겠죠?? run을 오버라이딩했습니다 Thread와 같은 추상메서드입니다. 내용 한번 넣어보겠습니다 0~10까지 반복하여 출력하는 while문입니다 메인으로 이동하여 Thread1을 호출하고 st.. 2019. 10. 27.
자바독학)Thread, sleep, run,백그라운드 프로젝트명 : G8_Thread 패키지명 : single_thread 클래스명 : B1_Thread, Th_Main 사진을 좀 소박하게 캡쳐해왔습니다. 클래스 2개로 나누어서 시작해보겠습니다. Thread는 독립적으로 실행합니다! 지금까지 main에서 호출하면 위에서 아래로 왼쪽에서 오른쪽으로 순서대로 일을했습니다. Thread는 동시에 일을 진행합니다. 일상과 비유하자면 저희 어플로 음악을 켜놓고 카카오톡이 가능한 것과 같습니다. 한 번에 두가지 이상의 프로세스를 실행하는 겁니다. thread의 사용법입니다. 1. thread를 extends로 상속받는다. 1번 먼저 확인해보겠습니다. Thread를 extends로 상속받았습니다. run이라는 메서드를 상속받습니다! 무조건 오버라이딩해야합니다. run+.. 2019. 10. 27.
자바독학)try-catch(예외처리) 프로젝트명 : G7_TryCatch 패키지명 : try_catch 클래스명 : B1_TryCatch try catch는 예외처리 방법입니다. int에 문장을 넣어봤습니다. 지금까지 저희가 봤던 오류 문구입니다. 자바에서 프로그램이 실행되는 도중 오류가 발생하면 프로그램은 강제 종료됩니다. 의도한 오류 혹은 사용자의 실수로 발생한 오류 시 프로그램은 진행되어야 합니다. 예외처리를 통해 프로그램의 비정상적인 종료를 막아주는 역할입니다. int n = 0; int result = 0; int arr[] = new int[2]; 이렇게 만들어보겠습니다 result = 10/n; 해보니 오류가 발생합니다. 모든 숫자는 0으로 나눌 수 없으니 오류가 발생합니다. 프로그램은 강제 종료되겠죠? 컴퓨터 계산기를 보니 ".. 2019. 10. 26.
자바독학)abstract, interface, fanal(인터페이스, 추상메서드, 상수) abstract 한번 더 보겠습니다! 솔직히 제가 이전 포스팅 봐도 어려울 거 같아요! 프로젝트명 : G5_Abstract 패키지명 : B2_abstract 클래스명 : Family String home; int money; boolean married; boolean은 값을 넣지 않으면 기본 값이 false입니다. money에 getter를 생성하겠습니다. 돈의 잔액을 반환하고 돈이 빠져나가게 만들 예정입니다. abstract를 사용하여 decMoney를 생성하겠습니다. 어떻게 사용하는지 함께 보겠습니다. 클래스명 : Father 클래스 생성하여 Family를 상속받겠습니다. 생성자를 만들어 주겠습니다. 파라미터로는 home, money, married를 생성하겠습니다. 파라미터의 값을 Family에 .. 2019. 10. 26.
자바독학) Object, abstract (오브젝트, 추상메서드) 프로젝트명 : G4_Object 패키지명 : Object 클래스명 : B_Object, ObjectMain 클래스 2개 만들어서 오브젝트 배워보겠습니다. Object객체를 사용하여 변수를 만들겠습니다. private으로 생성해줬습니다. getter과 setter생성했습니다. 메인에서 setter를 사용하려고 하는데! 소괄호() 내부에 Object타입을 넣으라고 하네요! 오브젝트 타입이 뭐가 있을까요? String타입을 넣어보고 int형 타입으로 넣어보고 했는데! 둘 다 문제가 없대요!! 어떻게 된 일일까요? https://docs.oracle.com/javase/8/docs/api/ 위의 주소 상단에 tree를 눌러보시면! (Apls라고 합니다. 자바의 설명이 있는 곳) 위와 같이 관계도가 나옵니다! 제.. 2019. 10. 25.
자바독학) 상속,오버라이딩,super (Override,extends) 프로젝트명 : G2_Extends 패키지명 : extend 클래스명 : Child, Main, Parent 이번에는 상속을 배워보겠습니다. 부모 클래스, 자식 클래스, 메인 이렇게 세 개를 만들어 보겠습니다. 부모 클래스 Parent에는 int money = 20000; String str = "반지"; 자식 클래스 Child에는 String can = "콜라"; 이렇게 가지고 있다고 생각하겠습니다. 메인에서 확인해보시면 당연히 Chlid클래스는 can만 사용할 수 있고 Parent클래스는 money와 str만 사용할 수 있습니다. Child클래스로 이동하여 extends Parent를 입력해보겠습니다. Child는 Parent클래스를 상속받았습니다. main으로 이동하여 확인해볼까요? 클래스의 경우 e.. 2019. 10. 25.