최근에 학원에서 능력있는 4명과 스터디그룹을 만들었다. 스터디의 내용은 단순히 공부를 하는것은 효율적이지 않다는 이유로 공통과제를 만들어서 매주 서로 코드리뷰를 하는방향으로 진행하고 있다. 첫번째 과제는 단순히 CRUD를 만들어보는 것으로 시작하였다. 간단한 과정이지만 데이터의 수정은 꽤 어렵게 다가와서 다양한 공부가 되었다. 그리고 목표는 같지만 과정이 다르다는 것에서 상당히 재미있는 경험이었다. 두번째 과제로는 멀티채팅 프로그램으로 잡았다. 멀티채팅 프로그램은 최근 학원에서 배운 소켓,Thread 의 개념을 실전에 그대로 사용한 예제이다. 그럼 일단 소켓을 다루기 위한 초기세팅부터 말해보겠다. 채팅프로그램을 만들기 위해서는 윈도우설정에서 포트를 열어줘야 한다. 일단 윈도우의 "실행"을 실행하고 wf...
JAVA 공부

어제는 드디어 파일입출력을 배웠다. 어떻게 보면 DB의 기초판이겠지만 이것을 자바로 구현하려고 하니 처음보는 용어가 많아서 외계어를 보는줄 알았다. 수업을 듣다보니 더더욱 모르는게 쌓여갔고 머릿속에 뭐가 들어갔는지 감도 안잡혀있었다. 그렇게 하루가 끝나고 다음날인 오늘이 학원휴업일이라는 이유로 그날 배운 파일입출력과 예외처리를 이용하여 전화번호를 추가, 목록, 파일에 저장, 삭제, 데이터 이름순으로 정렬 이렇게 과제를 받았다. 그리고 오늘 13시부터 다시 어제배운 내용부터 공부를 시작했다. 전혀 이해는 안가지만 같이 공부하고 있는 코딩잘하는 동료분의 가르침으로 어느정도 감을 잡고 코딩을 시작했다. package quiz; import java.io.File; import java.io.FileInputS..
오늘은 상당히 쉬워 보이면서도 구조가 그물처럼 엮여있어서 드디어 어느 정도 감을 잡은 것 같다. 그래도 앞으로도 계속 반복해서 할 필요가 있어보인다 오늘의 시작은 예외처리이다. 예외처리는 에러가 발생할 수 있는 코드를 실행하는 것이다. 코드를 보면 try { num = Integer.parseInt(sc.nextLine()); System.out.println("num : " + num); return; } catch (NumberFormatException e) { System.out.println(" System.out.println(e); e.printStackTrace(); } try라는 코드를 사용해서 예외가 발생할 수 있는 코드를 일단 실행해 본다. 이 코드에는 Scanner의 int값만 들어..

public class Seller extends Member{ private String Store; public Seller(String name, String id, int pw, String Store) { super(name, id, pw);// 생성자 this.Store = Store; } public String getStore() {//getter setter return Store; } public void setStore(String Store) { this.Store = Store; } public String toString() { return String.format("[판매자 정보]\nID : %s\n이름 : %s\nPW : ********\n가게주소 : %s", getId(),..
오늘은 상당히 피곤한 하루였다. 왜냐하면 수업시작부터 상속에 대해서 배웠기 때문이다. 상속이란 기존의 클래스의 내용(변수, 메서드)을 물려받아서(Inheritance) 추가적인 속성과 기능을 만들어서 확장한 새로운 클래스를 작성하는 것이다. 간단히 말해서 하나의 클래스에 모든 기능을 구현하기란 어려움이 있으니까 클래스별로 나누고 필요한 클래스의 속성을 가져오는 것이다. 예시를 보면 class Pos2D{// 슈퍼클래스(부모클래스, 상위클래스) private int x, y; public Pos2D(int x, int y) { this.x = x; this.y = y; } public void show() { System.out.println("x : " + x + ", y : " + y); } publi..
오늘은 일요일이다. 주말 동안 tv와 자판기의 모든 경우의 수를 자유롭게 구현하라는 과제를 받았다. 자판기는 경우의 수가 재고의 추가, 매진, 상품과잉, 검색 등등 이중 for문으로 하나씩 비교하는 방법으로 밖에 못쓰게 제한이 걸려있어서 시작도 못하고 있다. 그렇기에 이번에는 내가 구현한 tv를 올려보려고 한다. 내가 구현한 tv의 경우의 수는 일단 tv전원을 켜고 끄는 간단한 기능부터 꺼진 상태에서는 볼륨이나 채널을 조정할수 없게 해 봤다. 꺼진 상태에서 누르면 "tv를 키세요"라는 알림이 나오고 b키를 누르면 돌아간다. 전원을 켜고 case의 채널조절 메뉴를 누르면 채널 Up은 'u' Down 은 'd'로 눌러서 바꿀 수 있다. 마지막으로 음소거도 만들어놨다. public class Main { pu..
이번 시간에는 getter와 setter의 대해서 공부하는 걸로 시작했다. 일단 getter와 setter의 의미는 getter : 멤버필드에 있는 변수를 볼러와서 다른 클래스에서 쉽게 불러올 수 있다. setter : getter로 불러온 변수를 재설정 할수있다. 보통 멤버필드의 변수들은 private로 지정을 해줘야 안전하게 사용할 수 있다. class Marine { // static은 여러 객체가 공유하는 요소 static String name = "Marine"; static int atk = 5; static int def = 0; // non-static은 객체마다 서로 다른 값을 가질 수 있는 요소 int hp = 40; void atk(Ultralisk target) { target.hp..
티스토리 블로그 복붙 방지코드
오늘부터 객체지향 파트가 시작되었다. 걱정은 했었지만 역시 걱정한만큼 어려웠다;;; 하지만 어찌 하겠는가. 이해할때까지 계속 보고 이해하려고 해보는 수밖에 그럼 오늘내용도 이해한 만큼이라도 정리해 보려고 한다. 일단 기초로 알아야할 내용은 Java는 "객체지향 프로그래밍" 언어라는 것이다. "객체지향 프로그래밍" 에서 객체란 현실이나 개념으로 존재하는 무언가라고 할수있다. 간단히 생각하자면 에어컨이나 선풍기처럼 이미 만들어져있는 무언가일 것이다. C언어를 설명할 때 주로 "절차지향 프로그래밍"언어라고 한다. 절차지향이 순서대로 진행한다는 뜻도 맞지만 , 함수가 코드의 기본단위가 된다는 말이다. 반면, 자바의 객체는 변수와 함수(속성과 기능)을 내장할 수 있다. 어떤 속성과 기능이 내장되어 있냐에 따라서 ..
오늘은 자바의 기초에서 가장 어렵게 느겨진 루프문이다. array문 자체도 원리를 이해하는데에 상당한 어려움이 있었지만 루프문의 사용범위가 너무 넓다보니 더욱 시간이 걸린것같다. 본 내용에 들어가기전에 별찍기를 드디어 이해한것 같아서 이것부터 정리해 보려고한다. length = 5; st = 1; sp = length - st * 2; for (int i = 0; i < length; i++) { for (int j = 0; j < st; j++) { System.out.print(star); } for (int j = 0; j < sp; j++) { System.out.print(space); }for( int j = 0; j < st && j + st < length; j++) { System.out..

오늘은 for문에 대해서 배웠다. for문의 로직은 상당히 복잡한 편이라 이해하는데 상당한 시간이 걸렸으며 솔직히 다 이해했다고 말할수 있는지 잘 모르겠다. 하지만 오늘 이해한 내용까지만이라도 정리해 보려고한다. for문의 가장 기본적인 형식은 for(int i = 0; i < 5; i++){ Syso("Java"); } 이런식으로 작성을 하면 0부터 4까지 총 5번의 printf식을 작동시킨다. 이것을 조금더 어렵게 사용하면 이런식으로 사용이 가능한데 str의 문자열을 arr배열에 toCharArray를 이용하여 쪼개서 Arrays.toString으로 가져와서 출력하는 방식이다. 그리고a부터z까지 각각의 알파벳을 아스키코드인 - 32를 하여 대문자만을 출력도 가능하다. 컴퓨터에서 모든 문자는 각각의 아..
오늘은 퀴즈로 하루를 시작했다. 1 ) 시작은 간단히 While문을 이용하여 Hello world를 3회 출력하라이다. int n1 = 0; while(true){ Syso("Hello world"); n1++; if(n1==3){ break; } } 2 ) 1부터 20까지 한 줄에 띄어쓰기로 구분하여 출력하라 int n2 = 1; while(n2