안녕하세요! 이번시간에는 sorting에대해서 공부해볼겁니다!!! sorting 이란 정렬 이라는 뜻으로, bubble sort 는 두 인접한 원소를 검사하여 정렬하는 방법입니다. 시간은 상당히 많이 걸리지만, 코드가 단순하기 때문에 자주 사용된답니다! 그렇다면 10개의 숫자를 입력받고 입력받은 숫자를 오름차순으로 (작은숫자먼저!) 정리하는 프로그램을 만들어 봅시다! *needs*1. 10개의 수를 받을수있는 배열을 생성합니다2. 순서대로 정렬 시킵니다 10개의 배열을 생성하는것은 굉장히 쉽습니다. 단순히 int[] arr = new int[10]; 만 작성하면 되기 때문입니다. 그렇다면 순서대로 정렬은 어떻게 할까요...?이번시간에 저희가 할 정렬은 bubble sort입니다. 인접한 두 숫자중 누가더..
저번 시간에 Palindrome판단 프로그램에 대해 배웠는데요 이번시간에는 소수(Prime)출력 프로그램에 대해서 만들어 볼까 합니다. 제목 그대로 Not palindrome Prime print program 회문이 아니면서 소수를 출력하는 프로그램에 대해서 만들어 볼거에요! 먼저 필요한 method가 무엇 무엇이 있는지 생각해 볼까요? (하나 추가할 내용은 거꾸로 해도 소수인 숫자! 즉, 소수이면서 거꾸러도 소수이고 palindrome 은 아닌! ) *Needs*1.isPrime method2.Palindrome class의 reverse method 참고로 해당 클래스의 메소드는 reuse가 가능하답니다! 클래스명.메소드명 을 적으면 사용 가능해요!! 예를 들어 reverse method를 이용하고..
안녕하세요! 이번시간에는 Palindrome 판단 프로그램에 대해서 만들어 보겠습니다!! palindrome이란 앞으로 읽으나 뒤로 읽으나 같은 숫자나 문자라는 뜻 인데요 저희는 입력을 받고 거꾸로 해도 같은 숫자인지 판단하는 프로그램을 작성해 보겠습니다!! *Needs*1. reverse method2. isPalindrome method 이 두개의 method를 통해서 만들면 되겠습니다! 먼저 첫번째 reverse method를 만들어 볼텐데요. 정수인 숫자만 palindrome 판단을 할 것 이기 때문에 당연히 int 형으로 받고, int형이 return 형이 되겠습니다. 대략적인 method의 형태를 볼까요? public static int reverse(int number) 이런 식으로 작성하면..
이번시간에는 가위바위보게임을 작성해 봅시다! 0,1,2를 입력해서 가위바위보를 하는 프로그램인데요 ~ 컴퓨터는 랜덤으로 3중에 하나를 내게되는데 무엇을 냈는지 출력이 되구요 제가 컴퓨터를 2번더 이기거나 컴퓨터가 저를 2번 더 이기면 끝나는 프로그램입니다! 한번 작성해 봅시다! 이런식으로 작성을 해봅시다! 아무래도 random()함수를 써야하겠죠? 그전에 혹시나 까먹으신 분들을 위해 Math.random() 에 대해서 언급을 해드릴게요! Math.random()은 난수를 출력하는 메소드로써 [0,1)까지 임의의 실수를 반환합니다. 0~1인데 0은포함되는데 1은 포함이 되지 않죠! 조금더 응용을 하자면 강제적인 형변환을 하면 저희가 많이쓰는 정수형을 출력 할 수 있습니다. (int)(Math.random(..
안녕하세요! 이번시간에는 반복문 조건문을 이용해서 어떤 특정한 수열을 나타내주는 프로그램을 만들어 볼겁니다!! 갑작스럽게 이런 프로그래밍을 하여서 많이 당황하셨죠?? 예시를 보여드립니다! 1~15까지 숫자를 입력받아서 피라미드 식으로 출력하는 프로그래밍을 할거에요 예시를 보여드리겠습니다 ! 위 피라미드는 '15'를 입력받아 출력된 화면입니다. 이런식으로 나타내기 위해선 어떻게 해야할까요?? 먼저 숫자만 출력하는것을 생각해봅시다1212321234321234 이런식으로 나타내기 위해서는 행과 열 둘다 반복문을 사용해야 될것인데요 행은 입력한 숫자만큼 반복문을 돌리면 될것인데 문제는 열의 개수가 홀수개가 나와야한단 것 입니다. 1번째행은 1열 2번째행은 3열 3번째행은 5열 헉 이건 수열인데요???그럼 n번째..
이번시간에는 정적 멤버에 대해서 공부해 보도록 해요! 정적 멤버란 무엇인가.... 멤버란 객체내에있는 필드나 메소드를 의미한다고 배웠는데요! 정적 멤버는 과연 무엇일까요? 정적멤버란 모든 객체를 통틀어서 하나만 생성되고 객체가 이를 공유하게 되는데 이러한 멤버를 정적멤버(static member)또는 클래스멤버(class member)라고 합니다.그렇다면 다시 한번 멤버에대해서 생각해봅시다. 저번에 각각 객체마다 멤버가 생성이 되는데 그것을 인스턴스 멤버라고 배웠습니다. 객체를 생성하면 할수록 인스턴스멤버는 별도의 메모리를 차지해 다른 값을 가지고 있는데요, 정적멤버는 하나의 클래스에 하나만 생성이 가능하답니다. 생성은 으로 생성 할 수 있습니다. 한번 아래의 코드를 보시고 공부..
이번 시간에는 두 박스를 생성하여 두개 박스의 width, length, height에대해서 그 치수를 비교하는 메소드 (isSameBox)를 만들어 봅시다. 아래 코드를 보시죠! 박스 클래스를 역시 생성자를 이용해서 width, length, height 를 받아 초기화 하였고, boolean 자료형으로 두박스의 width, length, height가 각각 같은지를 판단하는 메소드를 만들었습니다. 그리하여 BoxTest클래스에서 두박스의 크기가 같은지 출력하는 프로그램을 작성했습니다. 매개변수를 객체로 받을수 있고, 또한 반환역시 객체의 참조값으로 할 수 있다는것을 다시한번 느낄수 있었네요!!
이번시간에는 메소드에서 객체를 반환하는 프로그램을 작성해봅시다. 과연 반환값은 정수나 실수와 같은 값만 가능할까요? 아니면 객체자체도 반환 가능할까요? 아래의 코드를 보세요! 위의 코드를 보시면 Box1클래스와 Box1Test클래스를 두개를 생성하였고요 Box1에서는 상자의 가로 세로 높이 부피에 대한 변수를 정수로 받았고, 생성자를 만들어서 가로 세로 높이를 매개 변수로 받아 부피를 초기화 시켰습니다. 그리고 그아래에서는 whosLargest매소드를 생성하였는데요 사용자 지정 자료형을 반환값으로 선언하고, 매개변수는 객체로 지정하여 각 객체의 멤버인 volume의 크기가 더 큰 객체를 반환하는 식으로 메소드를 생성 하였습니다. main메소드가 있는 Box1Test클래스에서는 obj1,obj2객체를 생성..
이번시간에는 인스턴스 초기화 블록에 대해서 알아보도록합시다! 인스턴스 초기화 블록은(instance initializer block) 필드를 초기화 시키는 방법중에 하나입니다. 우리는 전시간에 생성자에서 초기화를 하여 사용하였는데요 이번에는 두번째 필드 초기화 방법이 바로 이것입니다! 예시를 보면서 이해해보도록 합시다! 보시면 School생성자 아래에 중괄호로 블록이 있는데 이 블록이 바로바로 인스턴스 초기화 블록입니다. 변수 student_num를 생성자 안에서가 아닌 블록안에서 초기화를 시켜 출력하였습니다. 뭐 obj1과 obj2 객체 모두 40으로 초기화가 되겠지만 고냥 두개 만들어봤습니다 ㅎㅎㅎㅎ 그런데 말입니다. 인스턴스 초기화블록은 아래있는데 어떻게 ??? 라는 생각을 하실수 있습니다. 사실 ..
앞에서는 메소드를 오버로딩하였는데 생성자도 일종의 메소드 임으로 오버로딩을 할수 있습니다. 이번에는 메소드를 오버로딩해보고 또한 this에대해서 공부를 해보는 시간을 갖도록 합시다! 1.생성자 오버로딩 위를 보시면 Student 클래스를 생성하였는데 그 필드로 name age number를 선언하였습니다. 그리고 생성자를 두개 만들었는데 고거시 바로 생성자 오버로딩(Constructor Overloading)입니다. 첫번째에는 매개변수가 없이 고냥 초기화를 시키는 생성자이고 두번째는 매개변수가 순서대로 번호, 이름, 나이 가 있는 생성자 입니다. 또한 this를 이용해서 매개변수와 동일한 이름을 사용하더라도 구별할수 있도록 코드를 작성했습니다. 그리고 아래에는 접근자와 설정자를 (getter,setter..