no image
java Scanner
Scanner scanner = new Scanner(System.in); System.out.print("문자열을 입력하세요 : "); String str = scanner.nextLine(); System.out.println("입력 받은 문자열 : " + str); System.out.print("정수를 입력하세요 : "); int intValue = scanner.nextInt(); System.out.println("입력 받은 정수 : " + intValue); System.out.print("실수를 입력하세요 : "); double doubleValue = scanner.nextDouble(); System.out.println("입력 받은 실수 : " + doubleValue); -두 수의 ..
2024.04.17
no image
java 변수(타입),형변환
## 프로그램 소스 분석 자바 실행 프로그램은 반드시 클래스(class) 블록과 main() 메서드(method) 블록으로 구성되어야 한다. 메서드블록은 단독으로 작성될 수 없고 항상 클래스 블록 내부에서 작성되어야 한다. 클래스와 메서드를 간단하게설명하면 다음과 같다. 클래스 : 필드 또는 메서드를 포함하는 블록 메서드 : 어떤 일을 처리하는 실행문들을 모아 놓은 블록 클래스의 이름은 개발자가 마음대로 정할 수 있지만 소스 파일명 클래스명은 대/소문자가 일치해야 한다. # 주석과 실행문 주석은 프로그램 실행과는 상관없이 코드에 설명을 붙인 것을 말한다. 컴파일 과정에서 주석은 무시 되고 실행문만 바이트 코드로 번역된다. 따라서 주석을 많이 작성한다고 해서 전체 프로그램의 크기가 커지는 것은 아니므로 가..
2024.04.12
no image
java↗7-15. 생성자(constructor)
생성자(constructor) - 인스턴스가 생성될 때마다 호출되는 '인스턴스 초기화 메서드' 인스턴스 = 객체(iv 묶음) 즉, iv를 초기화 하는 메서드가 생성자이다. 1. 객체생성 , 2. iv 초기화와 같은 행동을 계속 번갈아가면서 해줘야하는 불편함이 있다. class Ex6_10_1 { public static void main(String args[]) { Time t = new Time(); // 객체생성 t.hour = 12; // iv 초기화 t.minute = 34; t.second = 56; } } class Time{ int hour; int minute; int second; } 생성자 추가 후, 생성자 호출로 간단하게 나타낼 수 있다. Time t = new Time(12 ,34..
2024.03.28
no image
java↗7-14. 오버로딩(overloading)
오버로딩(overloading) 한 클래스 안에 같은 이름의 메서드 여러 개 정의하는 것 오버로딩이 성립하기 위한 조건 1. 메서드 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다. 3. 반환 타입은 영향없다. int add(int a, int b) { return a+b; } int add(int x, int y) { return x+y; } // 오버로딩이 안된다. int add(int a, int b) { return a+b; } long add(int a, int b) { return (long)(a+b); } // 오버로딩이 안된다. long add(int a, long b) { return a+b; } long add(long a, int b) { return a+b; } ..
2024.03.27
no image
java↗7-13. static 메서드와 인스턴스 메서드
static 메서드 : 앞에 static이 붙은 것 인스턴스 메서드 : 앞에 static이 붙지 않은 것 인스턴스 메서드 - 인스턴스 생성 후, '참조변수.메서드이름()'으로 호출 - 인스턴스 멤버(iv, im)와 관련된 작업을 하는 메서드 - 메서드 내에서 인스턴스 변수(iv) 사용가능 static 메서드(클래스메서드) -> Math.random() - 객체생성없이 '클래스이름.메서드이름()'으로 호출 - 인스턴스 멤버(iv, im)와 관련없는 작업을 하는 메서드 - 메서드 내에서 인스턴스 변수(iv) 사용불가 객체는 iv 묶음이다. static 메서드는 객체(iv)가 필요 없다. ★여기서 long add() {return a+b}는 iv(인스턴스변수), static long add(long a, lo..
2024.03.27
no image
java↗7-12. 기본형 매개변수, 참조형 매개변수
기본형 매개변수 - 변수의 값을 읽기만 할 수 있다.(read only) 참조형 매개변수 - 변수의 값을 읽고 변경할 수 있다.(read & write) lv(local variable)은 지역변수이다. change 메서드의 x는 지역변수이기에 x = 1000은 아래 메서드에서만 적용된다. 기본형 매개변수는 읽기만 가능하고 값을 바꿀 수 없기 때문에, Data x의 값은 바뀌지 않는다. 만약에, change 메서드에서 Data x의 x 값을 바꾸고 싶으면, 기본형 매개변수가 아니라, 참조형 매개변수로 변경해야 한다. 단순히 참조형은 객체 주소(정수)를 주고 받는다고 생각하면 된다. Data3 d2 = copy(d); 여기서 copy에 참조변수가 들어가지 않는 이유는 1. stactic 메서드여서 2. 같..
2024.03.27
no image
java↗7-11. 호출스택(call stack)
호출스택(call stack) 스택(stack) : 밑이 막힌 상자. 위에 차곡차곡 쌓인다. 호출스택(call stack)이란? 메서드 수행에 필요한 메모리가 제공되는 공간 메서드가 호출되면 호출스택에 메모리 할당, 종료되면 해제 아래 있는 메서드가 위의 메서드를 호출한 것이다. 맨 위의 메서드 하나만 실행 중, 나머지는 대기중
2024.03.27
no image
java↗7-10. return문 반환값
return문 실행 중인 메서드를 종료하고 호출한 곳으로 되돌아간다. 구구단 출력 메서드 class Ex6_4 { public static void main(String args[]) { MyMath mm = new MyMath(); mm.printGugudan(3); // 구구단 3단을 출력 class MyMath { void printGugudan(int dan) { for (int i = 1; i
2024.03.27
no image
java↗7-9. 메서드호출
메서드이름(값1,값2,...); print99danAll(); // void print99danAll()을 호출 (void - 반환타입, 출력이 없다 = 내가 작업을 수행하고 줄 것이 없다) int result = add(3, 5); // int add(int x ,int y)를 호출하고, 결과를 result에 저장 (int - 출력, int x, int y - 입력) class Ex6_4 { public static void main(String args[]) { MyMath mm = new MyMath(); long result1 = mm.add(5L, 3L); long result2 = mm.subtract(5L, 3L); long result3 = mm.multiply(5L, 3L); double..
2024.03.27