공부/java 39

18일차 복습

GUI 기반 소프트웨어 만들기 GUI(Graphic User Interface) 우리가 흔히 보는 창을 띄워서 버튼을 눌러서 입력하고 x표시를 눌러 화면을 끄는 창(Interface)를 말한다. 요즘은 SAAS(서비스형 소프트웨어)라고 해서 대부분 웹 브라우져로 해결할수 있기 때문에 설치 소프트웨어 자체가 사장되어가는 분위기다. 특히 자바같이 연식이 있는 GUI라면 더더욱 그렇다. 크게 AWT와 SWING 두개의 방식이 존재한다. AWT는 저수준의 UI를 지원하며 Frame, Panel을 사용한다. 반대로 향상된 SWING는 고수준의 UI를 지원하며, JFrame, JPnel을 사용한다. 여기서 Frame란 윈도우창 뼈대, Panel이란 컨트롤 컨테이너, 즉 각종 조작 버튼, 입력창 등을 포함한 프레임 ..

공부/java 2022.12.08

16-17일 통신

통신 통신은 HTTP와 소켓(socket)통신으로 나눠진다. HTTP통신은 웹 브라우저와 같이 클라이언트(사용자)가 서버에 요청을 보낼때만 응답하는 통신이다. 예를 들어 우리가 특정 사이트에 로그인 할때, 우리는 "이 정보(ID/PW)가 맞는지 확인해주세요." 하는 식의 요청을 보내고 그에 맞춰 웹사이트에서는 "맞네요" 또는 "아닙니다" 와 같은 정보를 돌려주는 것이다. 반면 소켓 통신은 양방향 통신이다. 특정 포트(창구)를 통해 서버와 클라이언트가 실시간으로 정보를 주고받으며 소통할 수 있다. 채팅, 게임과 같이 응답 흐름이 양방향인 경우는 소켓통신이다. 연결지향적이며, 포트가 공개되어 있지 않아 제3자가 접근하기 힘들다. 달리 TCP/IP통신이라고 말하기도 한다. 포트, ip주소등, 서로 연결하기 위..

공부/java 2022.12.06

16일차 복습

본래 어제 올려야 했으나, 막혔던 문제를 하루종일 붙잡고 있었던 관계로 하루 늦게 작성한다. IO (Input Output) 파일 읽고 쓰기 크게 3종류가 존재한다. 1. 바이트(byte)단위 2. 문자 단위 3. 대용량 - 속도 개선 1. 바이트 단위 파일쓰기 FileOutputStream 클래스: 주어진 file객체가 가르키는 파일을, 바이트 스트림으로 읽기 위한 클래스. 객체를 생성할때 FileOutputStream ( file ) 형식의 생성자 함수값을 넣어줘야 한다. 파일 경로를 넣어줄 수 도 있고, 파일이름을 넣을 수도 있다. public class ex121 { public static void main(String[] args) { String filePath = "./out1.txt"; ..

공부/java 2022.12.06

15일차 복습

콜렉션 클래스 리스트, 맵, 셋을 포함하는 상위 클래스. Hash란? 초보자인 만큼, 깊게 파지 않고 쉽게 설명하자. 간단하게 말해 Arrray List의 문제를 해결하기 위해서 나온 방식이다. 크게 map과 set이 존재한다. ArrayList는 검색이 빠를지 모르나 아이템의 추가/삭제가 힘들다. 그러나 map은 인덱스를 특정한 값과 연결시켜 저장하기에 (Key와 Value) 필요한 데이터만 호출하는데 편리하다. 또한 set는 중복을 허용하지 않고 순서가 없다는 특징, 즉 인덱스가 부여되지 않는다는 점 덕분에 내부에 어떤 값이 존재하는지 빠르게 확인할 수 있다. HashMap Key와 Value값으로 저장된다. 여기서 Key란, 인덱스 값에 또다른 값을 저장한 것이다. Map map = new Hash..

공부/java 2022.12.04

14일차 복습

날짜와 시간 Date, Calendar, SimpleDateFormat, LocalDate, LocalTime 1. Date클래스 - SimpleDateFormat 내부 라이브러리에서 import해서 사용해야 한다. date: os로부터 정보를 가져온다. 현재 시간을 가져온다. import java.util.Date; public class ex43 { public static void main(String[] args) { Date date = new Date(); System.out.println(date); } } 결과 : Thu Dec 01 20:28:02 KST 2022 요일, 월, 일, 시간, 분, 초, 지역, 년도 순으로 나열되어 나온다. 그러나 이는 상당히 보기 불편한데다 원하는 부분만 추..

공부/java 2022.12.01

13일차

Math 클래스 사실 이 클래스는 굳이 공부해야 하나 싶다. 그냥 대강 이런 기능이 있구나, 하는 것만 알아두고, 그때그때 필요할때 검색하면 되지 않을까 싶다. //Math 클래스 - 수학적인 계산에 사용. // java.lang.Math 패키지에 있으므로, import안해도 됨. public class ex95 { public static void main(String[] args) { //소숫점 첫째자리 반올림 double num = 91.789D; System.out.println( Math.round( num ) ); //92 //연습문제 54 //소수점 둘째자리에서 반올림 System.out.println( Math.round( num * 10 ) / 10.0 ); //소숫점 셋째자리에서 반올림..

공부/java 2022.11.30

자바(java)의 객체의 다형성

다형성 클래스는 하나의 객체가 여러 자료형 타입을 가질수 있는데, 이를 다형성이라고 부른다. 부모 클래스의 타입을 자식 클래스가 가질수 있다. 자바의 모든 클래스는 Object 라는 클래스를 상속한다. 따라서 이를 이용하면 모든 객체 타입을 전달할수 있고, 따라서 프로그래밍이 더 유연해질수 있다. 상속의 개념을 생각해보자. 부모(상위), 자식(하위) 클래스라고 표현해서 헷갈리기 쉽지만, 실제로는 자식 클래스가 더 큰 개념이다. 부모 클래스의 모든 특징을 계승하고, 거기에 자신만의 속성과 메소드를 추가한 것이 자식 클래스다. 굳이 표현하자면 보강형이라고 봐도 무방하다. 따라서 부모 클래스의 기능을 자식 클래스도 그대로 가지고 있기 때문에, 자식 클래스 역시 부모 클래스 타입을 가질수 있따. 1.업캐스팅 자..

공부/java 2022.11.29

자바(java)의 클래스

클래스 객체지향 프로그래밍의 특징. 모든 사물을 객체(물건)로 (추상화)모델링 하는 기법. 속성(변수, 필드)과 행동(메소드/함수)로 구분된다. 클래스 안의 변수는 맴버변수, 또는 필드라고도 하며, 클래스 안의 함수는 맴버함수라고도 부른다. 클래스의 선언 class (클래스 이름) 형식으로 선언한다. 첫 글자는 대문자를 사용하도록 한다. 클래스는 흔히들 붕어빵 틀에 비유한다. 클래스를 만들어두면, 같은 일을 수행하는 객체(붕어빵)을 얼마든지 만들어 낼 수 있기 때문이다. 즉, 클래스 역시 static을 사용하지 않는 이상 호출되지 않는다. 클래스를 사용하기 위해서는 따로 객체를 만들어서 호출해야 한다. //클래스 class //객체지향프로그래밍(Object Oriented Programming) //모든..

공부/java 2022.11.28

자바(java)의 함수 종류

함수: 코드의 뭉치(블록) 함수를 사용하면 중복되는 코드를 줄일수 있으며 가독성이 향상된다. 함수는 입력값(매개변수)와 출력(반환값)이 존재할수 있다. 함수는 그 자체로는 자동호출이 되지 않으며, 동작시키기 위해서는 따로 불러와야만 한다. 함수의 4가지 형식 1. 매개변수 x, 반환값 x 2. 매개변수 0, 반환값 x 3. 매개변수 x. 반환값 o 4. 매개변수 o, 반환값 o 1. static void func1( ){ System.out.println("func1 호출 완료"); return; // 생략가능. 어차피 반환값이 없으니까. // System.out.println(""); 도달불가 에러! } void는 리턴값이 없는 함수를 뜻한다. 따라서 return;문은 생략해도 무방하다. 리턴값이 없기..

공부/java 2022.11.25

자바(java) 문제 풀이 복습

오늘은 내가 풀다가 어려웠거나 참신하다고 느낀 문제들 리뷰를 하겠다. 출처는 우리 강사님 블로그다. https://blog.naver.com/nissisoft21/222520498886 자바 100제 문제1~50 안녕하세요 코딩강사입니다. 앞으로 자바 100제 문제풀이를 통해, 그동안 배운 자바문법을 공부하고 학습하... blog.naver.com 문제 43 숫자를 한글로 바꾸기(난이도 중) 문제 설명 엑셀에서 숫자를 입력하면 그 숫자에 맞는 한글로 변환해주는 NUMBERSTRING 함수가 있다. 위 그림과 같이 A1셀에 12345를 입력하면 A2셀의 결과처럼 보여준다. 이 함수를 java언어로 직접 만들어보자. 입력 양의 정수 n이 입력된다. ( 0 일 15 ==> 일십오 내가 풀은 풀이 mport j..

공부/java 2022.11.25