목록Java (256)
코드 그라데이션
다른 프로그래밍 언어에는 함수라는 것이 별도로 존재한다. 하지만 자바는 클래스를 떠나 존재하는 것은 있을 수 없기 때문에 자바의 함수는 따로 존재하지 않고 클래스 내에 존재한다. 메소드란? 자바는 이러한 클래스 내의 함수를 메서드라고 부른다. 믹서기 비유 * 믹서기에 과일을 넣는다. * 그리고 믹서를 이용해서 과일을 갈아서 과일 쥬스를 만들어 낸다. * 우리가 믹서기에 넣는 과일은 입력이 되고 과일 쥬스는 그 출력(리턴값)이 된다. 입력을 가지고 어떤 일을 수행한 다음에 결과물을 내어놓는 것 메소드 사용 이유 가끔 프로그래밍을 하다 보면 똑같은 내용을 자신이 반복해서 적고 있는 것을 발견할 때가 있다. 이 때가 바로 메서드가 필요한 때이다. 여러 번 반복해서 사용된다는 것은 언제고 또다시 사용할 만한 가..
객체 변수는 공유되지 않는다. 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