코딩/JAVA26 인터페이스 인터페이스인터페이스(Interface)는 다른 언어들에서는 찾기 힘든 자바의 고급 기능이다.이 이해하기 힘든 인터페이스는 도대체 왜 필요하게 된 걸까?다음의 경우를 생각 해 보자.난 동물원의 사육사이다. 육식동물이 들어오면 난 고기를 던져준다. 호랑이던 사자던 상관하지 않는다.이런 케이스를 코드로 담아보자.Animal.javapublic class Animal { String name; public void setName(String name) { this.name = name; } } Tiger.javapublic class Tiger extends Animal { } Lion.javapublic class Lion extends Animal { } ZooKeeper.javapublic class Zo.. 2017. 4. 1. 생성자 생성자이번에는 클래스의 생성자(Constructor)에 대해서 알아보자.다음은 지금까지 만들어 온 클래스들이다.Animal.javapublic class Animal { String name; public void setName(String name) { this.name = name; } } Dog.javapublic class Dog extends Animal { public void sleep() { System.out.println(this.name+" zzz"); } } HouseDog.javapublic class HouseDog extends Dog { public static void main(String[] args) { HouseDog houseDog = new HouseDog(); h.. 2017. 4. 1. 상속 상속이번엔 자바의 상속(Inheritance) 개념에 대해서 알아보자. 상속은 말 그대로 무언가를 물려받는 것이다.Animal 클래스를 상속하는 Dog 클래스를 만들어 보자.Animal.javapublic class Animal { String name; public void setName(String name) { this.name = name; } } Dog.javapublic class Dog extends Animal { } 클래스 상속을 위해서는 extends 키워드를 사용한다. 위 Dog 클래스는 Animal 클래스를 상속했다.Dog 클래스에 name 이라는 변수와 setName 이라는 메소드를 만들지 않았지만 상속을 받았기에 그대로 사용이 가능하다. Dog 클래스에 다음과 같은 main 메소.. 2017. 4. 1. call by value class Updator { public void update(int count) { count++; } } public class Counter { int count = 0; public static void main(String[] args) { Counter myCounter = new Counter(); System.out.println("before update:"+myCounter.count); Updator myUpdator = new Updator(); myUpdator.update(myCounter.count); System.out.println("after update:"+myCounter.count); } } Counter 객체 myCounter의 count값을 Updator 객체 m.. 2017. 4. 1. 메소드 메소드클래스에는 인스턴스 변수와 더불어 메소드(Method)라는 것이 있다. 메소드는 클래스 내에 구현된 함수를 의미하는데 보통 함수라고 말하지 않고 메소드라고 말한다. 변수가 정적인 의미라면 메소드는 동적인 의미가 강하다. 말로 백번 하는것보다 실제 코드를 작성하는 것이 이해가 빠를 것이다.이제 메소드를 이용하여 Animal 클래스의 인스턴스 변수인 name 에 값을 설정해 보자.아래와 같이 setName 메소드를 추가 해 보자.public class Animal { String name; public void setName(String name) { this.name = name; } public static void main(String[] args) { Animal cat = new Animal(.. 2017. 4. 1. 인스턴스 변수 Animal.javapublic class Animal { String name; } Animal 클래스에 name 이라는 String 변수를 추가했다. 이렇게 클래스에 추가되는 변수를 인스턴스 변수라고 부른다. 또는 멤버변수, 속성이라고도 말한다. 인스턴스 변수는 말 그대로 다음과 같이 접근할 수 있다.인스턴스.변수 2017. 4. 1. 객체와 인스턴스 Animal.javapublic class Animal { } 위 Animal 클래스는 가장 간단한 형태의 클래스이다. 클래스의 선언만 있고 내용이 없는 껍데기뿐인 클래스이다. 하지만 이 껍데기뿐인 클래스도 아주 중요한 기능을 가지고 있다. 그 기능은 바로 객체(object)를 만드는 기능이다.객체는 다음과 같이 만들 수 있다.Animal cat = new Animal(); new 는 객체를 생성할 때 사용하는 키워드이다. 이렇게 하면 Animal 클래스의 인스턴스(instance)인 cat, 즉 Animal의 객체가 만들어진다. ※ 객체와 인스턴스클래스에 의해서 만들어진 객체를 인스턴스라고도 한다. 그렇다면 객체와 인스턴스의 차이는 무엇일까? 이렇게 생각 해 보자. Animal cat = new Ani.. 2017. 4. 1. for each for each 문for each는 J2SE 5.0 부터 추가되었다. for each 라는 키워드가 따로 있는 것은 아니고 동일한 for를 이용한다. 하지만 조건식 부분이 조금 다르다. 보통 다른 언어에서 for each 라고 많이 하므로 자바에서도 보통 for each문이라고 말한다.다음은 이전에 공부했던 평범한 for 문장이다.String[] numbers = {"one", "two", "three"}; for(int i=0; i 2017. 4. 1. 리스트 리스트 (List)리스트는 배열의 약점을 보완하기 위해서 만들어진 자바의 내장 자료형이다.배열은 크기가 정해져 있다. 예를 들어 배열의 크기를 10개로 정했다면 10개 이상의 값을 담을 수는 없다.류현진 선수의 투구스피드를 저장해야 한다고 가정해 보자. 배열을 이용하여 투구수를 저장할 수 있을까? 1회에 투구수가 3개도 될 수 있고 100개도 될 수 있지 않은가? 프로그래밍 시 크기를 알 수 있는 상황도 있지만 명확한 크기를 알 수 없는 경우가 더 많다. 이렇게 동적으로 자료형의 갯수가 가변하는 상황이라면 List를 사용하는 것이 유리하다.자바에 내장되어 있는 List 자료형 중 가장 간단한 형태의 자료형인 ArrayList에 대해서 알아보자.add류현진 선수가 총 3번의 투구를 138, 129, 142.. 2017. 3. 31. 이전 1 2 3 다음