객체와 인스턴스 클래스에 의해서 만들어진 객체를 인스턴스라고도 한다. 그렇다면 객체와 인스턴스의 차이는 무엇일까? Animal cat = new Animal() 이렇게 만들어진 cat은 객체이다. 그리고 cat이라는 객체는 Animal의 인스턴스(instance) 이다. 인스턴스라는 말은 특정 객체(cat)가 어떤 클래스(Animal)의 객체인지를 관계위주로 설명할 때 사용된다. 즉, "cat은 인스턴스" 보다는 "cat은 객체"라는 표현이 "cat은 Animal의 객체" 보다는 "cat은 Animal의 인스턴스" 라는 표현이 훨씬 잘 어울린다. class Animal { } public class Sample { public static void main(String[] args) { Animal ca..
객체 지향 프로그래밍이란? 계산기 만들기 class Calculator { static int result = 0; static int add(int num) { result += num; return result; } } public class Sample { public static void main(String[] args) { System.out.println(Calculator.add(3)); System.out.println(Calculator.add(4)); } } 실행 흐름 클래스 Cal 가 실행된다. Cal 클래스의 main 메서드가 호출된다. Calculator.add(3) 이 호출된다. add 메서드에서 result 변수에 3이 더해진다. result 변수는 현재 3이다. result..

조심할 부분 예제) 이런 코드가 있습니다. int[][][] b= new int[2][2][2]; 이 때, b의 자료형? Int[ ][ ][ ] b[0]의 자료형? Int[ ][ ] b[0][0]의 자료형? Int[ ] b[0][0][0] 자료형? Int 이 때? b =10 가능? No why? 주어진 코드에서 b의 자료형은 int[ ][ ][ ]이다. 즉, 3차원 배열이란 소리. 먼저, b[0]은 배열의 첫 번째 차원에서 첫 요소인 int[ ][ ] 타입의 배열이다. 이 배열은 2차원 배열이다. b[0][0]은 b[0]에서 첫 번째 요소인 int[ ] 타입의 배열이다. 마지막으로 b[0][0][0]은 b[0]에서 첫 번째 요소인 int 타입의 값이다. 따라서 b=10; 은 잘못된 문법이다. b는 3차원..
while(true) 하고 박아두고, if(조건1) ~~~ 뭐 요런 식으로 하면 가장 간편하긴 하다. public static void main(String[] args) { while (true) { if (조건1) { break; } if (조건2) { continue; } if (조건3) { continue; } } 그런데 이건 code smell 이라고 하여 매우 지저분한, 지양해야할 코드로 판단한다. 그래서 필요한 부분만 조건에 야무지게 걸어서 코드를 정돈하면, 훨씬 더 깔끔한 코드를 짤 수 있게 될 것이다. 여기에 강사님 설명을 덧붙이자면 두번째 질문은 break, continue를 많이 쓰면 소스가 지저분 해진다기 보다 무한루프에 break, continue 같은 구조로 만들기 때문에 생각을..
숫자야구 배열 코드 package megait.backend_lecture.Day08; import java.util.Random; import java.util.Scanner; //배열 숫자 야구 //1. 컴퓨터 랜덤 숫자 생성 단, 중복제거 필요 //2. 유저 숫자 입력 단, 1~9값만 허용, 중복허용 X //3. 컴퓨터 랜덤 숫자와 유저 입력 숫자 비교 //3-1. 자리와 숫자가 같으면 strike //3-2. 숫자는 같지만 자리가 다르면 ball //3-3. strike, ball이 없으면 out //3-4. 3 strike -> 홈런 프로그램 종료 //3-5. 홈런이 나오기 전까지는 strike ball을 출력 or out 출력 public class BaseballArray_T { public..
첫 번째 코드 package Day11; public class MethodTest1 { static int a = 10; static void abc() { int a = 30; a = 20; } static void kor() { System.out.println(a); } public static void main(String[] args) { // TODO Auto-generated method stub int a = 20; abc(); System.out.println(a); kor(); } } 실행 결과 20 10 ----------------------------- 두 번째 코드 package Day11; public class MethodTest1_2 { static int a = 10; ..
for(int i = 0;i
Q. 지금 여기서 왜 (i+1)+"번째 숫자 인거야? 즉, i에 +1을 해서 출력하는 이유? public static void main(String[] args) { // TODO Auto-generated method stub Random r = new Random(); Scanner sc = new Scanner(System.in); int[] com = new int[3]; int[] user = new int[3]; for(int i = 0;i