본문 바로가기

JAVA/국비 공부

(118)
3월15일 수업 구조체(Struct) 2세대 언어에서는 우리가 여러가지 데이터타입을 섞어서 필요한 한가지 데이터타입으로 만들어주던 구조체 라는 특수한 데이터타입이 있었다. 예를 들어서 우리가 학생의 구조체를 만든다고 한다면 그 안에 번호, 이름, 국어 점수, 영어 점수, 수학 점수 를 넣어서 하나의 Student 이라는 데이터타입으로 만들어주게 되는 것이다. 하지만 3세대 언어인 자바에서는 구조체가 존재하지 않는다. 그렇지만 우리가 구조체를 비스무리 하게 만들어 줄 수는 있다. 바로 아래가 Student라는 구조체를 비스무리 하게 만드는 방법이다. // 전혀 여러분들이 길게 기억할 필요 없는 자바에서 구조체 만드는 방법 public class Student { // 필요한 데이터의 종류를 여기에 적는다. int id; ..
3월15일수업(클래스) 클래스란? 프로그램에서는 우리가 필요한 클래스를 만들어서 그 클래스의 변수인 "객체"를 만들어 그 객체를 이용하는 것이 목표가 된다. 클래스의 구성요소 클래스는 필드와 메소드로 이루어져있다. 필드 : 해당 클래스의 객체들이 어떤 정보를 가지고 있을지를 규정해 놓은 것 메소드 : 해당 클래스의 객체들이 공통적으로 가지고 있을 기능을 선언과 구현해 놓은 것 생성자 (Constructor) 생성자란, 해당 클래스의 객체가 초기화 될때 호출되는 메소드이다. 객체가 처음 초기화 될때 필드의 초기값이나 특정한 행동을 해야할 경우, 우리가 직접 만들어 줄 수있다. 생성자는 우리가 특별히 클래스 안에 만들어주지 않더라도 자바가 기본적으로 제공해준다. 이러한 기본 생성자는 특별한 행동을 하지않고 기본형 데이터타입을 가진..
3월15일(12일 과제 로또 2) package day0315; // ArrayUtil 을 사용한 로또 게임 import java.util.Scanner; import util.ArrayUtil; import util.ScannerUtil; import java.util.Random; public class LottoGame02 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 1. 컴퓨터에 숫자 넣기 // A. 컴퓨터 숫자 배열 선언과 초기화 int[] computerNumbers = new int[0]; // B. 메소드를 통해 해당 배열에 중복되지 않는 랜덤숫자 넣기 computerNumbers = addRandomNumber..
3월15일(12일 과제 로또) package day0315; // 메소드 분리가 되어있는 로또 게임 import java.util.Random; import java.util.Scanner; import util.ScannerUtil; public class LottoGame01 { // 1. main() public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int gameNumbers = ScannerUtil.nextInt(scanner, "몇 게임 하실건가요?"); // 컴퓨터 int 배열 int[] computerNumbers = new int[6]; // 사용자 숫자 배열 int[][] userNumbers = new int[game..
3월12일 예제 2 입력과 출력을 메소드로 분리해서 6명의 학생을 관리하는 프로그램을 작성하시오 package day0312; import java.util.Scanner; import util.ScannerUtil; public class GradeBook02 { static final int SIZE_SUBJECT = 3; static final int SIZE_STUDENT = 6; static final int SCORE_MIN = 0; static final int SCORE_MAX = 100; static final int INDEX_KOREAN = 0; static final int INDEX_ENGLISH = 1; static final int INDEX_MATH = 2; public static void m..
3월 12일 예제 1 6명의 학생을 관리하는 프로그램을 작성하시오 단, 입력 부분을 ScannerUtil을 작성하시오 package day0312; import java.util.Scanner; import util.ScannerUtil; public class GradeBook01 { static final int SIZE_SUBJECT = 3; static final int SIZE_STUDENT = 6; static final int SCORE_MIN = 0; static final int SCORE_MAX = 100; static final int INDEX_KOREAN = 0; static final int INDEX_ENGLISH = 1; static final int INDEX_MATH = 2; public st..
3월12일수업(기본형 vs 참조형) call by value vs call by reference 우리가 메소드에 파라미터로 기본형 변수와 참조형 변수를 넣으면 무슨일이 벌어질까? 자바에서는 파라미터로 기본형 변수 혹은 기본형 값이 넘어갈때와 참조형 변수 혹은 참조형 값이 넘어갈때 차이가 존재한다. 기본형 데이터타입이 파라미터로 넘어갈 경우 " 값에 의한 호출 "(Call by Value)가 일어나고 실제 변수가 파라미터로 들어가는 것이 아니라 변수의 저장된 값이 복사되서 넘어간다. 참조형 데이터타입이 파라미터로 넘어갈 경우 "참조에 의한 호출"(Call by reference)가 일어나고 해당 참조형 데이터타입의 주소 값이 넘어가기 때문에 원본이 넘어간다고 볼 수있다. 즉 call by value의 경우 원본의 값이 변경되지 않지만 ca..
3월12일수업(ArrayUtil) package day0312; import util.ArrayUtil; //ArrayUtil의 메소드를 실습해보는 클래스 public class Ex02ArrayUtil { public static void main(String[] args) { int[] arr = { 1, 2, 3, 4, 5, 4, 3, 2, 1 }; // 1. size() System.out.println("ArrayUtil.size(arr): " + ArrayUtil.size(arr)); System.out.println(); // 2. contains() System.out.println("ArrayUtil.contains(arr, 3): " + ArrayUtil.contains(arr, 3)); System.out.printl..