본문 바로가기

JAVA

(72)
JAVA-(2022.05.10)-interface의 static 메소드 static메소드 - interface에서 static메소드를 통해 메소드를 구현할 수 있다. - 재정의가 불가능하다(static이니깐 당연하다는 맥락으로 이해하면 될듯). - 접근 제어자는 항상 public이며 생략할 수 있다. - 인터페이스를 직접 참조하여(레퍼런스) 사용해야만 한다. 코드예시) 1) static 메소드 예시 public interface Calculator { public int plus(int i, int j); public int multiple(int i, int j); default int exec(int i, int j){ return i + j; } public static int exec2(int i, int j){ //static 메소드 return i * j; } }..
JAVA(2022.05.09)- interface의 default메소드 default메소드 - interface에서 default메소드를 통해 메소드를 구현할 수 있다. - implements한 클래스에서 재정의 할 수 있다 코드예시) 1) default메소드 예시 public interface Calculator { public int plus(int i, int j); public int multiple(int i, int j); default int exec(int i, int j){ //default로 선언함으로 메소드를 구현할 수 있다. return i + j; } } //Calculator인터페이스를 구현한 MyCalculator클래스 public class MyCalculator implements Calculator { @Override public int p..
JAVA(2022.05.08)-클래스 형변환 , interface 클래스 형변환 - 부모타입으로 자식객체를 참조하였을 때, 자식객체의 메소드나 속성을 사용하려면 클래스 형변환을 해야한다. - 부모타입으로 자식객체를 참조할 때 묵시적 형변환 - 자식타입으로 부모객체를 참조할 때 명시적 현변한 public class Car{ public void engine(){ System.out.println("Car의 메소드"); } } public class Bus extends Car{ public void sound(){ System.out.println("빵빵."); } } public class BusExam{ public static void main(String args[]){ Car car = new Bus(); car.engine(); //car.sound(); //..
JAVA(2022.05.07)-추상클래스, super와 부모생성자, 오버라이딩 추상클래스 개념 : 모든 자동차는 클락션 소리가 난다. 그러나 자동차 종류마다 다르다. 어떤 자동차는 빵빵, 어떤 자동차는 띠띠. 추상클래스는 자동차 클락션 소리를 구현해주고 이를 상속하여 승용차 class, 경차 class에서 클락션 소리를 각각의 특성에 맞게 구현할 수 있도록 한다. 정의 클래스 이름 앞에 abstract 키워드를 붙인다 추상클래스는 미완성 추상 메소드를 포함할 수 있다(메소드 선언부인 {} 가 없다는 의미) > 대신, 리턴타입 앞에 abstract라고 붙여줘야 한다 *그러나 추상클래스를 상속받게 되면 해당 클래스에서 상속 받은 추상메소드를 반드시 구현해줘야한다. > 그러지 않으면 해당 클래스도 추상클래스가 됨* 추상클래스는 인스턴스 생성이 불가능하다 코드예시 ex) 추상클래스 car..
JAVA(2022.05.06)-this,메소드오버로딩,패키지,상속 this this를 통해 생성자 및 메서드에서 생성된 인스턴스의 필드 데이터에 접근 가능 public class Car{ String name; int number; public Car(String n){ name = n; } } public Car(String name){ name = name; } public Car(String name){ this.name = name; } this를 통해 생성자의 매개변수인 name을 필드 name의 값으로 준다. 즉 매개변수의 값을 필드에 대입하라는 의미가 된다 메소드 오버로딩 - 매개변수의 유형과 개수를 다르게 해서 같은 이름의 메소드를 여러 개 가질 수 있게 하는 기술이다 why? - 더하기 기능을 진행시키는 메소드가 있다고 생각해보자. 정수 a,b를 더하는..
JAVA(20220.05.05)-변수의 범위와 static, enum, 생성자 변수의 범위 변수가 선언된 블럭이 변수의 사용범위이다 블럭 바깥에 존재하는 매개변수도 메서드 선언부분에 포함되기 때문에 블럭 안에서 사용이 가능하다 ex) public class ValableScopeExam{ int globalScope = 10; // 인스턴스 변수 public void scopeTest(int value){ int localScope = 10; System.out.println(globalScope); System.out.println(localScpe); System.out.println(value); } } 위 코드에서는 오류가 나지 않는다. 클래스의 속성으로 선언된 변수인 globalScope(클래스의 속성으로 선언된 변수는 클래스 전체에서 사용이 가능하다) 메소드 선언부 매개..
JAVA(2022.05.04)- class,String클래스,field, 메소드 class 자바는 클래스를 먼저 만들어야 객체를 만들 수 있다 > 클래스는 설계도정도의 개념이다 클래스는 일종의 틀 ex) 메인메소드가 팔을 움직이는거라면 팔,손목 설계도 정도라고 생각하면 됨. 그 설계도를 통해 팔을 만들어내는게 객체화를 통해 이루어지는 것. 그리고 그 팔을 어떻게 할지 메인메소드에서 실행. (매우 중요) -기본구조 ex) public class Car{ } > 여기서 Car 클래스는 생성이 되었지만 객체가 만들어진 것은 아니다 (팔의 설계도만 만들어지는 것) 객체화- 메소드와 변수를 모아놓은 것에 불과한 클래스를 사용할 수 있도록 해당 클래스 타입의 객체명을 선언하고 값을 넣어줘서 해당 클래스의 변수나 메소드를 사용 가능한 상태로 만드는 것 객체를 생성하려면? ex) public cl..
JAVA(2022.5.3) do-while문, for,배열, for each문 do-while문 기본구조 do{ 실행문; }while(조건문); 무조건 실행문이 한번 실행되고 while에서 조건이 만족하지 않는다면 구문이 끝난다. for문 기본구조 for(초기화식; 조건식; 증감식){ 실행문; 실행문; } 배열 기본구조 int[] array1 = new int[4]; 값을 저장하는법 ex) array1[0] = 1; >0번 인덱스에 1이라는 값을 저장 선언과 동시에 초기화하는 방법 ex) int [] array 1 = new int[]{1,2,3,4,5}; 2차원 배열 기본구조 int[][] array4 = new int[3][4]; > 3개의 행과 4열을 가진 2차원 배열이 생성된다 1 0 0 0 0 0 0 0 0 0 0 0 2차원 배열에 값을 저장하려면? ex) array4[0..