== 참여자 == * [조영준], [강민승], [김영현], [김윤성] == 진행 == * '''JAVA'''합니다 JAVA. * 목요일 오후 2시 30분 6층 학회실 * 준비물: 몸, 멘탈, 노트북은 있으면 좋음. * 수업 - 실습을 번갈아 가면서 할 예정이나, 2시간으로 되려나...? == 수업 일지 == === 3월 13일 === * 참가자: 조영준, 강민승, 김영현, 김윤성 * 첫 번째 미팅! * 시간과 장소를 정하고 - 목요일 2시 6P * 주제를 정하고 - JAVA! * 이름을 정하고 - 자르반! * 아이스크림을 먹었습니다. === 3월 20일 === ==== 진행 ==== * 이론 * 우리의 목표 / 원하는 것 생각하기 * 위키 사용법 안내 * 자바가 돌아가는 방법 ~~및 자바 자랑~~ * 자바 개발 환경 구축 * http://www.oracle.com/technetwork/java/javase/downloads/index.html (jdk1.8) * java / javac 이용 * http://www.eclipse.org/downloads/ (Eclipse Standard) * eclipse 사용 방법 안내 * 실습 - 일단 무작정 짜보기 * 짜다 보면 C와 유사한 점과 C와 다른 점을 몸으로 느낄 수 있다! * 별 찍기 (System.out.println()) * 이름과 나이 입력받기 (Scanner input = new Scanner(System.in), String 클래스) * 알아본 것들 * 파일 명과 클래스 명은 같아야 한다. * 패키지-클래스-(매서드 / 필드) 구조로 되어있다. * 매서드와 필드 옆에 이상한게 붙어있다. * 이 외에는 대부분 C랑 비슷하나, C보다 개발자에게 친근하다. {{{ import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new java.util.Scanner(System.in); String name = input.nextLine(); int a = input.nextInt(); System.out.println("제 나이는" + a + "살입니다."); System.out.println("제 이름은" + name + "입니다."); System.out.println(sum(3, 4)); } public static int sum(int a, int b) { return a + b; } } }}} ==== 후기 ==== * 내용내용 - [조영준] * 자바 신기하고 재밋네요! c랑 멀어질듯… 1학년인데 ㄷㄷ - [김영현] * 비슷한것도 많으면서 다른것도많고 멘붕x_x [강민승] === 3월 27일 === ==== 예정 ==== * C와 다른 부분들 간락하게 추가 설명 * 클래스와 인스턴스 ==== 진행 ==== * 메모리 구조 * 기본형 변수와 참조형 변수 * 클래스와 객체 * 살펴본 클래스들 : System, String, Math, Scanner, ... * 간단하게 클래스 및 객체를 만들어보기 * static? private? ==== 샘플 ==== {{{ public class Main { public static void main(String[] args) { TV tv1 = new TV(); tv1.turnOn(); tv1.setChannel(30); tv1.setVolume(3); TV tv2 = new TV(5, 10); tv2.turnOn(); tv2.channelUp(); tv2.channelUp(); tv2.volumeUp(); System.out.println("tv1's channel is " + tv1.getChannel() + " and volume level is " + tv1.volumeLevel); System.out.println("tv2's channel is " + tv2.getChannel() + " and volume level is " + tv2.volumeLevel); } } class TV { private int channel; // Default channel is 1 int volumeLevel; // Default volume level is 1 boolean on; // By default TV is off public TV() { channel = 5; volumeLevel = 3; on = false; } public TV(int newChannel, int newVolume) { channel = newChannel; volumeLevel = newVolume; } public void turnOn() { on = true; } public void turnOff() { on = false; } public void setChannel(int newChannel) { if (on && newChannel >= 1 && newChannel <= 120) channel = newChannel; } public void setVolume(int newVolumeLevel) { if (on && newVolumeLevel >= 1 && newVolumeLevel <= 7) volumeLevel = newVolumeLevel; } public void channelUp() { if (on && channel < 120) channel++; } public void channelDown() { if (on && channel > 1) channel--; } public void volumeUp() { if (on && volumeLevel < 7) volumeLevel++; } public void volumeDown() { if (on && volumeLevel > 1) volumeLevel--; } public int getChannel() { return channel; } } }}} ==== 후기 ==== * === 4월 3일 === ==== 미니 프로젝트 ==== * '난 정말 JAVA를 공부한 적이 없다구요' 기반 ===== 1단계 ===== * PhoneInfo Class 정의하기 * 필요한 Field * 이름 / name / String * 전화번호 / phoneNumber / String * 생년월일 / birthday / String * 필요한 method * 연락처 정보 출력 / showPhoneInfo() / void * 단 생년월일 정보는 저장을 할 수도, 저장하지 않을 수도 있게끔 생성자를 정의 * 정의된 클래스의 확인을 위한 main 메소드도 간단히 정의 ===== 2단계 ===== * 사용자로부터 데이터 입력받기: 다음과 같은 과정이 반복적으로 이루어 져야 함 * 프로그램을 계속 실행할 것인지 종료할 것인지 확인 * 키보드로부터 데이터 입력 * 입력 받은 데이터로 PhoneInfo의 인스턴스 생성 * 생성된 인스턴스의 showPhoneInfo() 메소드 호출 ---- * 뭐지, 왜 여긴 자바지?! ㅋㅋ - [김태진] * 이미 C를 좀 알고 있음 + 자바에 관심있어함 상태라 :Q - [조영준] * 오 자바반이다ㅋㅋ - [kero] * 이름도 내용도 강려카다! - [원준연] * JArVAn - [강민승]