객체 변수는 공유되지 않는다. main 메서드 변경 class Animal { String name; public void setName(String name) { this.name = name; } } public class Sample { public static void main(String[] args) { Animal cat = new Animal(); cat.setName("boby"); Animal dog = new Animal(); dog.setName("happy"); } } cat객체에는 "boby"라는 이름을 대입하고 dog객체에는 "happy"라는 이름을 대입했다. 이렇게 하면 setName 메서드에 의해 다음과 같은 문장이 두번 실행될 것이다 cat.name = "boby"; do..
이제 객체 변수에 값을 대입하는 방법에 대해서 알아보자. 객체 변수에 값을 대입하는 방법에는 여러가지가 있지만 여기서는 가장 보편적인 메서드를 이용하는 방법에 대해서 알아보자. 클래스에는 객체 변수와 더불어 메서드(Method)라는 것이 있다. 메서드는 클래스 내에 구현된 함수를 의미하는데 보통 함수라고 말하지 않고 메서드라고 말한다. 메서드 추가하기 class Animal { String name; public void setName(String name) { this.name = name; } } public class Sample { public static void main(String[] args) { Animal cat = new Animal(); System.out.println(cat.na..
객체와 인스턴스 클래스에 의해서 만들어진 객체를 인스턴스라고도 한다. 그렇다면 객체와 인스턴스의 차이는 무엇일까? 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차원..
첫 번째 코드 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