전체 글 101

JAVA 인터페이스

인터페이스(추상메서드 집합) 1.일종의 추상 클래스. 추상클래스보다 추상화 정도가 높다. 2.추상메서드와 상수만 멤버로 가질 수 있다. 3.인스턴스를 생성할 수 없고, 클래스 작성에 도움을 줄 목적으로 사용된다. 4.미리 정해진 규칙에 맞게 구현하도록 표준을 제시하는 데 사용된다. interface PhoneInterface { //인터페이스 선언 public static final int TIMEOUT = 10000; //상수 필드 public static final 생략 가능 public abstract void sendCall(); //추상 메소드 public abstract 생략 가능 public abstract void receiveCall(); //추상 메소드 public abstract 생략..

JAVA 2022.07.19

JAVA instanceof 연산자

참조변수의 형변환 class Car{} class FireEngine extends Car{} Car car = null; FireEngine fe = new FireEngine(); car = (Car)fe; //참조변수 fe의 주소를 참조변수 car에 복사! FireEngine fe2 = null; fe2 = (FireEngine)car; //참조변수 car의 주소를 참조변수 fe2에 복사! 참조변수의 형변환 전에 반드시 instanceof로 확인해야 함. 조상의 리모콘으로 자손을 조종할 수 있음. 자손의 리모콘으로는 조상을 조종할 수 없음.(조상에게 없는 기능을 호출하려 할 수 있기 때문에.) Q1.참조변수는 왜 형변환 하나요? A. 참조변수(리모콘)을 변경함으로써 사용할 수 있는 멤버의 갯수를 조..

JAVA 2022.07.18

JAVA (메서드)오버라이딩

조상의 메서드를 자신에게 맞게 바꾸는것.(구현부{}만 변경할 수 있음.) 1.선언부가 조상 클래스의 메서드와 일치해야 한다. ==> 반환타입 메서드이름 (매개변수 목록) {} 2.접근 제어자를 조상클래스의 메서드보다 좁은 범위로 변경할 수 없다.(같거나 넓어야함.) 3.예외는 조상 클래스의 메서드보다 많이 선언할 수 없다.(같거나 적어야함.) class MyPoint3{ int x; int y; String getLocation() { return "x:"+x+", y:"+y; } } class MyPoint3D extends MyPoint3{ int z; //조상의 getLocation()을 오버라이딩 String getLocation() { return "x:"+x+", y:"+y+", z:"+z; ..

JAVA 2022.07.18

JAVA 인자전달

1. 기본 타입의 값 전달(값을 전달함) 값이 복사되어 전달 메소드의 매개변수가 변경되어도 호출한 실인자 값은 변경되지 않음 2. 객체 혹은 배열 전달(주소를 전달함) 객체나 배열의 레퍼런스만 전달 객체 혹은 배열이 통째로 복사되어 전달되는 것이 아님 메소드의 매개변수와 호출한 실인자 객체나 배열 공유 public class ArrayParameterEx { static void replaceSpace(char a[]) { for (int i = 0; i < a.length; i++) if (a[i] == ' ') a[i] = ','; } static void printCharArray(char a[]) { for (int i = 0; i < a.length; i++) System.out.print(a[..

JAVA 2022.07.17

JAVA 제어자

제어자는 하나의 대상에 여러개를 조합해 사용할 수 있는데 접근제어자는 단 하나만 사용할 수 있으며, 보통 접근 제어자를 가장 앞에 적는다. 접근제어자 접근 제어자 같은 클래스의 멤버 같은 패키지의 멤버 자식 클래스의 멤버 그 외의 영역 public O O O O protected O O O X default O O X X private O X X X public 모든 영역에서 사용 가능 protected 클래스, 패키지 달라도 자식클래스면 사용 가능 (default) 클래스 달라도 같은 패키지면 사용 가능 private 같은 클래스일때만 사용 가능 package pkg1; public class MyParent { //=>1.이거 그냥 (default) class MyParent로 만들었다가, 다른 패키..

JAVA 2022.07.17

JAVA 변수 초기화

지역변수(lv) :사용 전 꼭 수동 초기화 해야함. (재사용이 빈번해서 변수값이 자주 바뀌기 때문에) 멤버변수(iv, cv) 1.자동 초기화 2.간단 초기화 =>명시적 초기화(=) class Car { int door = 4; Engine e = new Engine(); 3.복잡 초기화 =>초기화 블럭 -인스턴스(iv) 초기화 블럭 : {} -클래스(cv) 초기화 블럭 : static {} =>생성자(iv) Car(String color, String gearType, int door) { this.color = color; this gearType = gearType; this.door = door; }

JAVA 2022.07.17

JAVA static 메서드, 인스턴스 메서드

-static 메서드는 매개변수를 통해 지역변수(lv)를 사용한다. (매개변수가 있기 때문에 iv가 필요없음.) 바로 호출 가능. ->공통 속성일 경우 또는 iv를 사용하지 않는 경우 static을 붙여준다. -인스턴스 메서드는 매개변수가 없으므로 인스턴스변수(iv)를 사용한다. 대신, iv를 생성하고, 호출하는 작업이 필요함. //static 메서드는 인스턴스 변수(iv)를 사용할 수 없다. class TestClass2 { int iv;//인스턴스 변수 static int cv;//클래스 변수 void instanceMethod() {//인스턴스 메서드(객체 생성 후 호출 가능한 메서드) System.out.println(iv);//인스턴스 변수를 사용할 수 있다.(이미 객체 생성 됐으므로) Syst..

JAVA 2022.07.16

JAVA 변수의 종류 인스턴스변수, 클래스변수, 지역변수

클래스 영역- iv, cv(static + iv) 클래스 전체에서 사용가능(cv는 객체생성 안해도 사용가능) 메서드 영역- lv 메서드 종료시 자동 제거 (like for문~ =>선언 만 가능. 순서는 상관X 인스턴스 변수(iv) :개별 속성. 객체마다! 클래스 변수(cv) :공통 특성. 다른 공간에 한개만! public class Ex6_3 { public static void main(String[] args) { System.out.println("Card.width = " + Card.width); // cv는 객체 생성 없이 사용가능 System.out.println("Card.height = " + Card.height); Card c1 = new Card(); c1.kind = "Heart"..

JAVA 2022.07.16

JAVA 예외 처리 try-catch-fianlly, throw

예외(Exception) : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 예외처리(Exception handling) : 예외 발생에 대비한 코드를 작성해 정상적인 실행상태를 유지시키는 것. try-catch try{ 예외가 발생할 가능성이 있는 실행문 } catch(처리할 예외타입 선언){ 예외 처리문 } try-catch-fianlly fianlly 블록문에는 예외 발생 여부와 상관 없이 무조건 실행되는 문장을 넣어준다. 예시 public class ArrayException { public static void main(String[] args) { int[] intArray = new int[5]; intArray[0] = 0; try { for (int i = 0; i < 5; i+..

JAVA 2022.07.13

JAVA 배열

배열 선언(참조변수, 레퍼런스 변수) int[] score; 생성(공간 생성) score = new int[5]; 선언+생성 int[] score = new int[5] 선언+값저장 int[] score = {0, 1, 2, 3, 4} double[] a = {0.01, 0.02, 0.03, 0.04} 배열의 길이 score.length 비정방형 배열의 길이 score[i].length 여기서 [5]는 배열의 인덱스라고 불림.(배열의 방 개수) 배열의 인덱스 범위는 = 5-1개 2차배열 [ ][ ] score = new int[행][열]; [5]= score.length [3]= score[i].length △요런 크기의 배열인거임! 2차원배열의 이중반복문 for(int i=0; i정렬(오름차순) Arr..

JAVA 2022.07.09