160318: 5일차
1. 툴
동일
추가시:
2. 폴더
동일
추가시:
3. 사용할 사이트
동일
추가시:
4. 공부하는 것
하다보면 MySQL을 할 것임.
오전엔 복습을 하는 것.
- Day 02
// 저번 기수는 박스오피스 웹사이트 만들었음.
// 5주 정도 프로젝트 하는 것 - 오~
// 스프링 마이바티스 이런 애들도 쓸 줄 알아야 함미다 으아ㅏ아ㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏ
while( (i=s.nextInt()) != 0){ //s의 입력값이 0일 때까지 계속 돌리기
sum = sum+i;
n++;
}
이거 복습 하고 있음
s.nextInt() 이거 약간 단어가 안 익는다 - 아! s는 스캐너 변수인데 위에 있는것... (생략)
if(i%2==0){
sum = sum+i;
// System.out.println(i);
continue;
요거 짜는데 continue 안 넣었음... 오늘의 트롤은 Continue
[01] 제어문 예제
>>>>> Test01.java
public class Test01 {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) { // 위에부분
for (int j = 1; j <i; j++) {
System.out.print("*");
}
System.out.print("\n");
}
for (int i = 1; i <= 6; i++) { // 아래 부분
if(i>1){
for (int j = 0; j < i-1; j++) {
System.out.print(" ");
}
}
for (int j = 1; j <=(6-i); j++) {
System.out.print("*");
}
System.out.print("\n");
}
}
}
격파하였다
package day05;
public class Handle_test1 {
public static void main(String[] args) {
for(int i = 0; i<5; i++){
for(int j = 0; j<i; j++){
System.out.print("*");
}//end for2
System.out.println("");
}//end for1
//--------------up-----------------//
for(int k = 0; k<6; k++){
for(int m = 0; m<k; m++){
//지나감
//0
//01
//012
//0123
System.out.print(" ");;
}//end for2
for(int l = 5; l>k; l--){
System.out.print("*");
}//end for3
System.out.println(" ");
}//end for1
//--------------down---------------//
}//end main
}
예제 Day03에 있는거
while(true){
if(s.nextInt() == -1){
break;
}
cnt++;
}
이렇게 짜는거 안 해봐서 어려움 해보기 ㅇㅇ
입력값 주는게 어렵다.
저거 썼을 때 -1 이후에 더 입력했더라도 -1전까지만 개수 카운트 해줌
배열 쓸 때
int arr[] = new int[5];
이렇게 뒤에 new를 통해서 만들어야 한다. - 해시코드가 만들어지쉬는것
package TestDay05;
import java.util.Scanner;
public class ArrayAccess {
public static void main(String[] args) {
// 5개짜리 정수 배열 만들어서 나중에 최대값 출력해주면 됩니다.
Scanner in = new Scanner(System.in);
int arr[] = new int[6];
arr[5] = 0;
for (int i = 0; i < (arr.length-1); i++) {
System.out.print((i+1) + "번째 정수를 입력하세요: ");
arr[i] = in.nextInt();
if (arr[arr.length-1] < arr[i]) {
arr[arr.length-1] = arr[i];
} // end if
} // end for
System.out.println("\n입력한 정수 중 가장 큰 수는 " + arr[arr.length-1] + "입니다.");
}// end main
}
오늘 배운거는 지역변수 특징 - 자신이 속한 단락 안에서만 사용 가능.
double은 int값 자동으로 형변환해서 강제형변환 안해도 된다.
//2차원 배열은 넘어갔습니다 - 해보기...
Day 4 하는중
오 스캐너 사용할 때
java.util.Scanner in = new java.util.Scanner(System.in) 이렇게 쓰면 임포트 안해도 됨 ㅇㅇ..
그냥 문자열 입력 받을 때는 next() 쓰는거십니다
////////////////////////////
2번째거 *출력이랑 숫자 출력까지는 뽑았음 - 띄어쓰기를 만듭시다.
////////////////////////////
앜! 데시말포맷! DECIMALFORMAT - 이거 돈 관리하는 걸로 두번정도 짜보기!
Switch문도 써보기!!!!
예제 04 에서 성적만 수업시간에 했음
substring = 문자열 추출
문자열의 index를 사용해서 변수의.substring(여기부터,조기까지) 추출 - 인덱스의 끝 인덱스의 바로 전까지만 추출 가능하다.
Calendar 같은 경우에는 객체를 생성한 뒤(변수같이 생겼음) 메소드를 통해서 값을 추출 가능
-------------발표하는데 버그남 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ------------------------------
equals를 씁시다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
package TestDay04;
public class Test_6 {
public static void main(String[] args) {
int cnt = 0;
while (true) {
if (args[cnt].equals("exit") ) {
System.out.println("입력 완료.");
break;
}
if (Integer.parseInt(args[cnt]) == 0) {
System.out.println(args[cnt] + "은 0");
} else if (Integer.parseInt(args[cnt]) < 0) {
System.out.println(args[cnt] + "은 음수");
} else
System.out.println(args[cnt] + "은 양수");
cnt++;
}
}
}
--------------------------------------------------
객체를 위한 클래스
객체: 물리적인 공간을 가지고 있는 구체적인 것 - 자동차 같은 거 (실제로 돌아다니는)
근데 자동차를 만들려면 설계도 같은 게 있어야되잖아 -> 그게 클래스 = 그래서 객체는 클래스의 실체!
구래서 클래스 1개로 객체 여러개 가능
마자 그래서 실체 = 객체 = 인스턴스 = instance (영어로 하면 인스턴스 -_-);;)
붕어빵...으으붕어빵
광어빵
잉어빵
황금잉어빵
우럭빵
대게빵
클래스는 동일한데 객체는 좀 다를 수 있음
ex) 도면은 같아서 내부는 똑같은데 외부는 매우다른 집
클래스: 은행계좌
객체: 나의은행계좌 너의은행계좌 우리의친구의은행계좌
ㅇ예~~~클래스~~
클래스 - 필드랑 메소드가 있음
필드: 변수임 (=인스턴스 변수 = 멤버 변수 ) - 얘 지역변수랑 다른거임 걔는 전체적으로 쓸수가없어...
- 전역변수 같은건데 이름을 그렇게 부르기는 객체지향에서 뭐해서 멤버라고 부름 멤버 변수 필드 인스턴스변수
메소드: 함수임(=인스턴스메소드 = 멤버메소드) - 얘 일하는애임
- 얘가 필드를 처리하는 기능임여 - 인스턴스함수 인스턴스메소드 멤버함수 멤버메소드
-메소드 연기랑 별로 상관없겠지 크
객체는 힙 영역에 메모리가 잡힘 - 정신이 혼란스러우니 복습할 것
1) 클래스를 만들 것
public class Student{
String name;
int rollNo;
}
이래놓고 Student david = new Student(); 일케 쓰면 됩니다.
- 데이비드가 참조 변수임 - 해시코드가 필요함용
뉴! new: 메모리 할당
Student alice = new Student(); 일케 써도 됨 (클래스니까!)
존도 써도 되고 데이빗도 써도 되고 앨리스도 써도 됩니다
//얘들을 보고 참조형타입이라고 부름
이유: 참조값이 들어가니까
참조값: 해시코드임
//그림이 여캐는 넘 섹시 타입임니다
그리고 클래스마다 파일 하나씩 만드는 편이 좋겠어
Testsample클래스는 Testsample1.java
하나의 파일에 클래스 여러개 넣으면
class A{
}
class B{
}
이럴 경우에 파일명을 뭐로 하지 -> 메인 메소드 있는 걸로 해주면 됨미다
B에있으면 B.java
A에있으면 A.java
아 맞아 그리고 B.java로 했을 때 B는 public class로 만들어줘야함.
왜냐면 main문있는 class는 퍼블릭으로 안만들면 접근을 못함 - 넘나구진것
사실 여러 개 클래스 따로 따로 자바파일로 만들면 퍼블릭이고 뭐고 그냥 클래스 이름으로 하면됨 -_-);;
두개 이상 있으면 main문+public 있는 클래스로 하면 됩니다.
클래스 내의 멤버 변수에 수식을 넣으면 왜 처리 결과가 0될까 - 의문 - 아! 이게 메소드군!
오예 2개남음
class Pay{
String name;
int bonbong;
int tax;
int silsu;
}
요럴 경우에 스트링은 해시코드니까 int 취급해서 int*4 = 16바이트짜리 메모리인것
근뎅 왜 수식은 못넣을까! 내가 못짜나!
아니면 초기화는 못하나...? -ㅅ-);;; // ㅜㅜ아닌데
저렇게 클래스 내가 만들어놓고
Pay david = new Pay(); 하면 객체 하나 만든거임 - d(-_-)b
저러면 david.name 이런 식으로 접근 가능
쟤네들은 데이빗 객체 안의 멤버 변수임
.으로 그곳에 접근함 흫ㅎㅎㄽㅎㅅㅎ
p1.tax = (int) (p1.bonbong * 0.045 + 0.5);
조고 왜 캐스팅했냐면 결과값이 실수임미다 -_-+
더블더블
아 메소드가 함수같은 검미다
아 그냥 함수네 ㅋㅋㅋㅋㅋ
메쏘드는 퍼블릭으로 만드러야 합니다
이렇게 생겼음
public int taxCalc(){
}
taxCalc 호출하면 int값을 리턴한다는 얘기신것
그래서 리턴 해줘야됨
그러면 이렇게 생김
public int taxCalc(){
return 0; //0아니어도 정수값 리턴할 거 쓰면 됨...
}
이거는 함수 줄 때 p1.bonbon 이런 식으로 주면 에러나쉬는것
그러니까 그냥 bonbon(이거 멤버변수 이름)
근데 메소드는 객체 안에 선언을 하기는 하는데 메모리상에 힙 영역에 있는 건 아님
우리의친구 메모리 영역 이름
1. 스택 - 지역변수
2. 힙 - 배열 & 객체
3. 코드 - 이거 메소드(객체의 함수) ㅋㅋㅋㅋ아옿ㅎㅎㅎ 가 있는 공간인데
4. 데이터 - ㅇㅇ이따나옴 머리가아픔
요기 가려면
멤바변수나 객체가 가지고 있는 해시코드로 호출하는거임 ㅋㅋㅋㅋ ;;(-_-);;;
ㅇㅇ 그러니까 객체를 생성해야지만 메소드를 쓸 수 있는데
메쏘드 메소드 메서드
프린트같은 건 리턴값 없어도 되어서 이런건 걍 ㅣㅇ렇게 생김
class void printhaseyo{
}
오 프린트 박으니까 넘나좋네여 ㅋ(-_-)ㅋ
15줄 ->3줄 객체짱짱맨
메소드 하니까 조커 연기가 누구였지
메소드... 디카프리오 ... 잭... 뭔데 잭....잭 잭 ... 잭 잭... 잭 블랙 ...?
그 싸이코 연기 한 배운데 ㅇㄴㅁ안ㅁ아ㅣㅁㄴ히스레저
디카프리오가 점점 닮아가는 얼굴인 배우인데!!!!!
잭 니콜슨
어휴 https://namu.wiki/w/%EC%9E%AD%20%EB%8B%88%EC%BD%9C%EC%8A%A8?from=%EC%9E%AD%20%EB%8B%88%EC%BB%AC%EC%8A%A8
-----------------1시간뒤면 신난당-------------------------~_~
이예~~~ 그리고 인터넷있었음 OTL.... 69017000...
와이파이 ㅠㅠㅠ
그리고
public int silsuCalc(){
return bonbong - taxCalc();
}
System.out.println("세금: " + taxCalc());
이렇게 바로바로 메소드 내에서 출력할 수 있음
멤바변수는 줄이고 메소드는 늘립시다.
메모리 아끼쉬는것
근데 함수 내에서 응 스캐너도 받을 수 있음 ㅇㅇ //이거 한번 집에 가서 또 짜봐야겠따
next()는 스페이스를 한 단락으로 인식하고 nextLine()는 엔터안 치면 스페이스를 한 단락으로 인식하고
구래서
public void payinput(){
System.out.print("이름과 본봉을 입력하세요: ");
name = s.next();
bonbong = s.nextInt();
System.out.println("");
}
이렇게 짜면 입력: 김김 23232 했을 떄 엔터 한번에 입력 o
public void payinput(){
System.out.print("이름과 본봉을 입력하세요: ");
name = s.nextLine();
bonbong = s.nextInt();
System.out.println("");
}
}
이렇게 짜면 입력: 김김 2332323 했을때 엔터 한번 치면 이름이 "김김 2332323" 이 됨
-찾아볼 것: 이놈의 커서 맨 끝으로 고정하기-
1
121
12321
121
1
이거 짜고 갈 것... 일단 로그오프!
5. 수업
진도:
hw:
11문제 풀어볼 것!
6. 할것
나갈때 티스토리 로그아웃 할 것 - 안그러면 집에서 비번 맨날 바꿔야해 짱귀차나 ㅠㅠ...
예쓰! 5일차!
1. 학원에서 제어문 예제 좀 공부할 것. - 값좀 써보면서 짜고 답 맞춰 보기... 씪씪
2. 쿠페한테 깔아둘 것 - 얘 랜선 연결하는 거 하고 etc 좀 찾아두기 (옆에 정리함에 있을 듯)
3. 우쿨 조율 해놓기
4. 오늘 급하지 않으니 술집 안 나오는 쪽으로 길 찾아두기
5. 학원 (4월부터 시작 하는 것) 알아보기 - 문화원 연계가 되면...
6. 하얀색 옷 좀 살 것 - 으으 검정의 향연...
7. 게임 그 ** 보스좀 잡을 것 - 주말의 목표 -_-)b 왜 한명만... 왜...
8. 옷장 정리를 할 것 - 뭐가 어디에 있는가 ...
9. windows 로고 + ctrl + d 이거의 친구 & 이거 이름좀 알아볼 것
10. 승질나니까 인강도 듣기 - 스터디데스크.co.kr 아이씨! - 오늘 버그만듬 버그버그 버그! 으아아 ***가 고쳐줌...
11. 머리도 자를래 으으
12. 슬리퍼도 갖다 놓을까 <-... (-_-);;
13. do while 예제 한 5개 만들어보기
14. 마방진으로 하트 만들어보기 (-_-);;;
15. 앜 매물 하나 놓쳤다!! **
16. 집에 가서 샤이닝 다운받아서 봐야지
'Programming' 카테고리의 다른 글
160322: 7회차 (4) | 2016.03.22 |
---|---|
160321: 6회차 (1) | 2016.03.21 |
160317: 4회차 (3) | 2016.03.17 |
160316: 3회차 (2) | 2016.03.16 |
160315: 2회차 (1) | 2016.03.15 |