본문 바로가기

자바 JAVA

(18)
간단한 매개변수의 다형성 활용예제 이전까지 자바에서 객체를 생성할 때는 Thing a = new Thing(); 과 같은 구문을 이용했다. 다형성은 객체지향언어의 특성 중 하나로, 그 중 매개변수의 다형성은 예를들면 부모클래스로부터 상속받은 자식 클래스가 있을 때 Parent a = new Child(); 의 형태로 표현이 가능한 것을 의미한다. Child a = new Parent(); 형태는 불가 이를 통해 Child, Child2, Parent 등 각기 다른 객체들을 마치 Parent 객체 하나인 양 다룰 수 있다. package sample; public class Sample { public static void main(String[] args) { Buyer a = new Buyer(); a.Buy(new Tv()); a.B..
toString()메소드 오버라이딩 사용예 오버라이딩은 자식클래스가 부모클래스로부터 물려받은 메소드를 수정하는 것으로 그 기능을 확장하여 이용하고 싶을 때 사용한다. 오버라이딩은 특히 toString()메소드에 많이 쓰인다. toString()메소드는 Object클래스의 메소드 중 하나로 자바에서 모든 클래스는 최상위 클래스인 Object클래스를 상속한다 package sample; public class Sample { public static void main(String[] args) { It a = new It(); System.out.println(a);// 오버라이딩 전 출력값은 It객체의 참조값(주소값) } } class It { It(){} void itMethod() { } } 오버라이딩 전 System.out.println(a)..
자바 음악파일 재생 단순한 예제 package test; import java.io.File; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Clip; public class Test { public static void main(String[] args) throws Exception { while(true) { File a = new File("jay-someday-europe.wav"); AudioInputStream b = AudioSystem.getAudioInputStream(a); Clip c = AudioSystem.getClip(); c.open(b); c.start(..
상수는 왜 final 예약어로 선언하나요? - 자바 기초 final 예약어가 어떻게 사용되는지 작성된 예제코드를 보자 package sample; class Card { final int NUMBER; final String KIND; static int width = 100; static int height = 250; Card(String kind, int num) { KIND = kind; NUMBER = num; } Card() { this("HEART", 1); } void cardNothing { } } public class Sample { public static void main(String[] args) { Card c = new Card("Heart", 10); System.out.println(c.KIND); System.out.print..
생성자 매개변수 다 넘겼는데 객체 만들 때 오류? super() 예약어! 상속을 공부하면서 생성자에 필요한 매개변수를 다 넘겼는데도 객체 생성시 오류가 나는 것을 봤다. package sample; public class Sample { public static void main(String[] args) { Point3D p = new Point3D(1, 2, 3); System.out.println(p.z); } } class Point { int x, y; Point(int x, int y) { this.x = x; this.y = y; } void pMethod() { } } class Point3D extends Point { int z; Point3D(int x, int y, int z) { this.x = x; this.y = y; this.z = z; } voi..
오버라이딩 overriding 기초 예제 오버라이딩 오버라이딩은 상속받은 메소드를 확장하기 위해 사용한다. 오버라이딩 메소드는 부모 클래스 메소드와 메소드명, 리턴타입, 매개변수가 같아야한다. 메소드 호출시 오버라이딩 메소드가 부모 클래스 메소드보다 우선시된다. package sample; public class Sample { public static void main(String[] args) { Point3D a = new Point3D(); a.x = 10; a.y = 20; a.getPoint(); } } class Point { int x, y; void getPoint() { System.out.println("x : " + x + ", y : " + y); } } class Point3D extends Point { int z; ..
원, 삼각형 좌표 찍기 예제 - 자바 기초 객체지향 프로그래밍을 통해 아래와 같은 출력결과를 갖는 원과 삼각형 좌표를 찍는 예제를 작성 출력결과로부터 색깔, 포인트, 삼각형, 원의 클래스를 도출 class Color { String color = "black"; void printColor() { System.out.println("색깔은" + color + "입니다"); } } >> 인스턴스변수 color 한 개와 printColor()메소드 한 개를 갖는 Color 클래스 생성 class Point { int x, y; Point() { this(0,0); } Point(int x, int y) { this.x = x; this.y = y; } String getPoint() { return "(" + x + ", " + y + ")"; } ..
자바 공부 잊지말아야 할 내용 정리 1편 자바 공부하면서 들었던 의문점이나 이해했던 개념들을 정리해보자 1. 다중for문 쉽게 이해하기 - 다중 for문에서 i, j 변수 사용시에 i는 행, j는 열을 의미한다고 보면 쉽다. - 테이블 형태의 데이터에서 한 행을 볼 때 바뀌지 않는 수가 i, 한 열을 볼때 바뀌지 않는 수가 j ex) 9x1=9 9x2=18 9x3=27 에서 9는 i 2. break는 break를 감싸고 있는 첫번째 반복문을 빠져나간다. (반복문 안의 switch 안의 break의 경우는 switch만 빠져나옴) 3. continue는 continue를 감싸고 있는 반복문의 첫줄로 돌아감. (초기조건이 i=1, 증감식 i++인 for문의 경우, continue할 시 i=1이 아닌 i=2가 된다.) 4. while문은 조건을 먼저..