목록전체 글 276
재밌고 어려운 IT를 이해해보자~!
this 예약어 자바의 this 예역어는 파이선 self와 비슷하다. this.x 는 멤버변수의 x를 뜻한다. 이클립스에서보면 멤버변수와 같은 색을 가진것을 확인 할 수 있다. 모든 멤버변수앞에는 반드시 this를 붙이자 ! 그이유는this를 안붙여도 되긴 하지만, 전체 스코프를 참조해서 자바가 알아서 찾아내기 때문에 느리다. 이 this를 사용해서 생성자도 재사용이 가능하다. 다음 코드를 보자. package class02; class Point { int x; int y; Point() { //System.out.println(" 로그"); --> 멤버변수 초기화가 안되었는데 뭔가 하면 안된다. // 초기화하는코드가 제일 먼저다!!!! this(0,0); System.out.println(" 로그1"..
Q. 학생 1명의 이름,나이,점수 어떻게 저장할까? -> 배열, 원시타입으로는 한번에 다른 자료형들을 저장할 수 없다. A. "학생"이라는 자료형이 필요한 순간!!!!! 객체지향의 시작 클래스~! 클래스(Class)란 ? ★★★★ JAVA의 기본단위이며 자료형의 일종이다. ex) 이름, 나이, 번호를 가지고있는 학생 클래스! JAVA에서 이미 수많은 클래스들을 미리 만들어놨고 사용한 적이 있다. ex) Random, Scanner, ... 이미있는것 외에도 개발자(우리)가 새로 정의할수 있음! 클래스명 선언은 대문자로 시작하는것이 규칙이다. 따라서 함수(메서드),변수명 드은 대문자 X 원시타입들은 new 연산자 사용 X 배열, 클래스 객체(우리가 만든 자료형)들은 "개발자 영역(heap 메모리 영역)"을..
선택정렬에 대해서 배워보았다. 버블정렬이 두개의 값을 비교해서 더큰값을 뒤로 옮기는 것을 반복한다면, 선택정렬은 전체를 비교해서 가장 작은값의 인덱스를 찾아, 그 값을 0번째 인덱스부터 차례대로 정렬해 나가는 방식이다. 버블정렬 1회전을 하면 가장 큰값을 마지막 인덱스에서 알 수 있고, 선택정렬 1회전을 하면 가장 작은값을 첫번째 인덱스에서 알 수 있다. 선택정렬 코드 package class01; public class Test03 { public static void main(String[] args) { int[] array = new int[5]; array[0] = 7; array[1] = 5; array[2] = 9; array[3] = 2; array[4] = 1; for (int a=0; a
리팩토링 하기에 앞서.. 함수를 만들기전에 메인에 코드를 작성해보고 함수화 하는것이 좋다. 함수화 할때 알아야 할것 3가지 1. 빨간밑줄이 생기면 인자로 데려와야하는 변수이다. 2. 함수를 거쳐서 왔을때 메인에도 적용되는지 확인. 3. return으로 값을 받을지 main에서 직접 변경할지 고민. ★ 모듈화(컴포넌트화,캡슐화,리팩토링,패키징,함수화,메서드화,...) 모듈이란? 단독 수행할 수 있는 코드 묶음 독자적인 기능이 존재하는 코드 많은 조각들로 다양하게 이루어진 레고가 더 좋은 레고이다. 1. 조합 경우의 수 가 훨씬 많고, 2. 더 세부적인 표현이 가능함! 기존 작성했던 프로그램은 전체 코드중에 단 한줄이라도 문제가 생기면 동작이 불가능 == 결합도가 높은 코드 == 응집도가 낮은 코드 오늘만들..
삽입정렬 코드 작성 후 디버깅표를 만들어보자. package day006; public class sortedarray { public static void main(String[] args) { int[] arr = new int[5]; arr[0] = 100; arr[1] = 5; arr[2] = 60; arr[3] = 1000; arr[4] = 30; for (int i = 1; i = 0; j--) { if (arr[j] > pivot) { arr[j + 1] = arr[j]; arr[j] = pivot; } } } for (int datas : arr) { System...
1167 두번째 수 구하기 어제배운 버블정렬을 사용했다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int a = scan.nextInt(); int b = scan.nextInt(); int c = scan.nextInt(); int[] arr = {a,b,c}; for (int i = 0; i arr[j+1]) { int temp = arr[j+1]; arr[j+1]=arr[j]; ar..
함수(Function) 프로그래밍에서 함수의 개념은 수학에서 나오는 함수의 개념과 동일하다. 예를들어 f(x) = 5x + 1 이라면 x에 3을 대입했을때 16이라는 결과를 얻는다. 이처럼 자바의 함수도 마찬가지이다. 함수란 하나의 기능을 수행하는 일련의 코드로써 호출하여 사용 및 함수가 실행된 후 값을 반환할 수 있다. 함수가 선언되면 여러 곳에서 호출되어 사용될 수 있다. 함수,메서드 : output 함수명(input) → 메서드 시그니처 메서드 시그니처란 메서드이름과 매개변수리스트의 조합을 의미한다. 메서드를 만들기전에 항상 메서드 시그니처 생각해야한다.. 그 이유는 나중에 설명할 오버로딩 때문이다. 또한 문제의 뉘앙스를 잘 파악해야한다. 함수의 3요소는 1. input (매개변수,args,인자,인..
오늘은 같은 수강생분이 버블정렬을 코드와 함께 잘 소개해 주셨다!!! 발표내용과 강사님이 알려주신 피드백을 참고해서 더 좋은 코드를 만들어보자!!...뭐가있을까? 기존코드 package class01; public class Test01 { public static void main(String[] args) { int[] ar = {3,2,5,1,4}; for (int j = 0; j ar[i+1]) { int temp = ar[i]; ar[i] = ar[i+1]; ar[i+1]=temp; flag = false; } } if(flag) {..