*연습문제가 잘 안 풀렸지만 규칙을 찾으면서 조금씩 도전해봐야겠다는 생각이 들었다. 구구단을 출력하는법 , arrays.toString 사용하는방법 등을 다시 한번 복습해야겠다.
연속된 구간으로 나타나게 됨
3으로 나눠서 몫을 구하고자 함 -> 몫이 1인 숫자들
-> 0,1,2는 3으로 나눠지지 않으니까
-> 배열의 길이 고정
-> 배열 a를 순회하고 있다(접근하면 됨)
-> 전체적인 윤곽 보기
배열요소 : 배열의 이름 + 인덱스 -> 호출
arrays.ToString
-> 배열 a를 순서대로 순회한다
-> 배열 28개 모두를 A로 채워라
0,1,2 -> index(인덱스) : i라고 볼 수 있음
(문자랑 숫자 연결 : char(2byte) + int(4byte) 타입의 문제)
( 2byte 가 2개 늘어서 4byte로 늘수 있음)
a[i](2 byte) = ch + i(4byte)
복사 : ctrl + atrl + 방향키
이동 : atrl + 방향키
몇개를 복사? 3개
b배열 0에 있는 요소를 a배열 3에 있는 곳으로 3개를 복사
-진법 변환을 위해서 '나머지'값을 씀
-> 17은 가지고 있음
-배열의 마지막 요소에 저장
-> 인덱스로 따지면 인덱스 값을 하나씩 줄여가면서 나머지 값만 취득함 : 몫이 0이 나올때까지
-> while문이 좋음, 0만 아니면 계산 가능
-> 종료 조건만 강조 하면 되서 : while문이 좋음
배열의 인덱스 마지막 자리에 저장하시오
-> 사용후 감소하도록
NUMBE를 2로 나눈 값이 새로운 NUMBER
-> 복합연산으로 줄이기
-> 여기서 number = 0
while문이 동작하기 이전에
변수 i 선언했음 -> j로 바꾸기
-> 2진수 한자리 : bit(byte의 기본 구성 8bit = 1byte)
★ 2진법 공부하기!(내장계산기능이 없음)
-> 합계 구할실 100이 더해진 상태로 봐서
알고리즘에서 또 100을 더하면 안됨
-> 첫번째 요소는 빠짐 : 이미 total에 들어와있어서
-> 두번째 점수가 더 크면 그 값을 최댓값으로 함
-> 다 정수값이라 소수점이 계산되지 않음 (몫을 구하는 연산자가 됨)
-> score[1] 2번째 요소, 2번째 요소가 가장 큰 값
top : 1등의 인덱스
인덱스가 1인 두번째 요소가 최댓값이라면 ) 만족함
번호를 몇번 인덱스에 기록해두도록
-> 언제 최댓값이 나올지 모르는 것
: 제일 첫번째 점수가 초깃값으로 잡혀있으니까
최댓값의 번호를 가지고 있는것
-> 언제 작은 점수가 나올지 모르니까
-> bottom이 0으로 되어있는 이유
i : 단을 만들때 사용하는 값
j : n을 만들때 사용하는 값
gugudan[0][1] -> 2단의 결과
2차원배열 행번호 -> 단의 관계
2차원배열 열번호 -> n값의 관계
-전체 필드 값 4자리로
: j보다 하나 큰 숫자 : 호수
-> 숫자 따지기
-> 행의 갯수 : 5개
-> 더하는게 없으니 0으로 시작
-> total은 7까지 상승되어있는 상태이므로 total =0;(초기화) 해줘야 함
-> 월요일에 4과목 있어요
weekname 인덱스, timetable 행 인덱스 값이 동일한 값을 가지도록 맞춰주기
-> 문자열 포맷 출력값 %3s
%d : 정수
-> 공백 포함해서 3글자
-> 동일과목은 ln제거
★ 2차원 배열은 웹 사이트 만들때 많이 사용 안함 -> 어려우면 과감하게 넘기기 !
(0,0) -> (0,4)
(0,1) -> (0,3)
->i + j =4
a.length -> a있는 걸 꺼내서 b로 보내야 하니까(a기준)
-> b배열이 90도 돌아가는 모습
b가 보고있는걸 a가 가져가면 됨(a는 메모리 누수됨 : 자바가 함)
-> function : 메소드(무슨일을 하는 함수)
-> 게임 프로그램 [i][j]
메소드로 값을 전달하는 방법
메소드로 부터 값을 받아오는 방법
1..jar(jar 아키이브) 파일 만드는 회사 (class를 가져가 쓸수있게끔) : 라이브러리 회사
-> ex01() 메소드에 전달하는 인수가 없다
-> 값이 전달되었을때 값을 받아서 저장하는 변수 (매개변수) = parameter
-> 인수 찾아서 전달
-> ★ 핵심 : string받을 준비가 되어있는 애한테 전달
★★★ 제일 중요한 내용 : 인수, 매개변수, 파라미터
-> 인수와 파리미터 모르면 안됨
-전달할때 "인수"를 준다
-메소드로 인수를 주면 메소드의 "파라미터"가 받음 = 메소드의 "매개변수"가 받음
-> 10,20을 받을 수 있는 애 만들기
-> 정수 2개 저장할 준비가 됨
-> 인수를 감당할 수 있는 메소드 따로 만들면 자바는 구분을 잘 해서 ex01 똑같이 만들어도 상관없음
(메소드 오버로딩 : 같은 이름을 가진 메소드를 여러개 만들어도 괜찮음, 단, 파라미터는 달라야 함)
*println
-> 아무것도 전달 x (줄바꿈)
파리미터가 다른 것
-> parameter이름이 x이다.
-> 주석 아님
-> 자바 문서(자바 doc)
인수(argument)
파라미터(parameter)
*level2
ex01(a,b) 인수로 전달해서 (int a,int b) 파라미터로 받아서 출력
main이 가지고 있는 a,b를 ex01로 줌 int가 받고 늘림
a++ , b++는 main의 a,b일까 ? ex의 a,b일까?
-> a++ b++ 다음에 돌아오는 값
여기먼저 호출되었으니 먼저 찍힘
돌아와서 찍고 찍음
인수를 파라미터로 옮길때 "복사"가 이루어짐
메모리에 변수가 잡힘
-> main의 ab가메모리에 있고 ex01() ab가 메모리에 있다
-> 같은 이름의 변수가 2개있는 상황
-> 값을 복사받아서 있는 상황
-> 값을 복사받아 자기것을 늘린 것
*level3 : 참조타입
-> 배열타입으로 받기
-> 파라미터가 boolean 등등 종류별로 받을 수있게 해놓음
-> main 의 int[] a ex01 int[]a 배열은 서로 다른 배열이다.
-> main의 배열 ab도 바뀌어있음
-> 왜 바뀌어있을까?
a에는 참조값이 들어가있음
a전달한것은 10,20,30의 주소를 주었다
-> 메모리 상으로는 같음
★★메모리에는 사실은 하나만 만들어져 있으나 주소값, 위치값을 두변수가 가지고 있음
-> 웹개발의 대부분은 참조타입이다.
A -> B 값을 줘서 B가 수정함 A가 확인해 봤을때도 수정이 되었나?
수정이 되었음
저기서 넘긴걸 여기서 수정해도 수정이 되는 이유ㅜ임
1.기본타입(8개) : 그냥 복사 -> 주면 끝남
2. 참조타입(배열) : 참조값을 줌, 집주소를 줌 -> 한군데 있는 데이터를 둘 이상의 메소드가 참조할 수 있음 : 데어터가 같이 처리됨
-> 메소드 호출해도 메소드가 나에게 주는 건 없다
-> 값을 반환하는 방식
(void 대신 적기)
compiler 컴파일러 : 실행 후 결과
-> 둘다 파라미터(전달)이 없음 : 구분이 안됨(같은 이름 주는건 불가능함)
return이 없으니까 코드 적어라는 것
-> 2번째 메소드 호출하면 메소드가 나에게 100을 준다는 것
ex02는 실행 끝나고 없어지고 결과가 100임
ex02 실행하면 int 타입의 100을 줌
그 100을 n에다가 저장
int n = 값을 받을 준비하는 것
-> ex02부르면 항상 100이 옴
-> ex02가 100으로 바뀌니까
☆ 호출구 만드는 것이 어려움(여러가지 형태로 만들수 있음)
ex01 반환이 없는 애는호출 형태가 하나밖에 없음 - ex01()
-> 함께 나오는 코드가 없음, 실행해도 주는 것이 없음
호출하는데 다른것이 섞여있는 것 : 전부 반환이 있는것
★ 클래스에 있는 메소드를 부르기
(우리가 만드는 클래스를 부르기)
-> 매개변수 : 파라미터
-> main에게 전달할 수 있는 것 : Stirng[] 여러개
(아직 main을 호출해본적 없음)
수정가능한 소스코드 : src 파일
실행가능 실행파일 : bin파일
확장자가 class인 파일 : 자동생성(자바 virtual machine은 bin폴더에) -> 실제 실행은 class가지고 함
java.exe 파일 실행
-> 자바 실행하는 path이미 잡아놓았기 때문에 문제 없음
(패키지 때문에 실행 x)
추가메시지 전달 가능 : 메인에 파라미터 string배열로 전달 가능함
-> main한테 전달하는 인수(argument) 있으면 적을 수 있음
-> main method에 parameter로 넘어감
argument = args
-> argument 로 주는것 parameter로 받는것 (같이 혼용되어 쓰는 경우도 많음)
-> main method의 parameter는 궁금하지 않아도 괜찮음
**7/24/월 시험
잘 읽었습니다. 좋은 정보 감사드립니다.