[JAVA] 22-07-01 인터페이스를 활용한 문제해결
·
STUDY/JAVA
1번문제 SmartTelevision을 자동채널변경시스템을 Searchable 인터페이스를 통해 구현하시오 ex) 10.20.25.120 채널이 있다. 일정값을 입력받으면 가까운번호의 채널로 자동 변경하는 시스템을 구축해라 package package001; //SmartTelevision의 부모 //[public] interface 인터페이스명{} public interface Searchable { //추상메소드 //타입 메소드명(매개변수); void search(String url); default void setChannel(int channel) { if (channel > 0 && channel = 15 && channe..
[JAVA] 22-06-29 다형성 형변환 ☑
·
STUDY/JAVA
다형성(polymorphism) 조상타입참조변수로 자손타입객체를 다루는것 다형성을 구현하는 기술 - 상속 또는 인터페이스의 자동타입변환 - 오버라이딩 다형성의 효과 - 다양한 실행결과를 얻을 수 있다. - 객체를 부품화 시킬 수 있어 유지보수가 용이하다. 인터페이스를 이용한 다형성 개념 interface I { void method1(); void method2(); } I i = new A(); I i = new B(); //I라는 인터페이스에 A라는 구현객체를 대입을 했다. //이때, A라는 객체가 문제가 있어서 B라는 객체로 바꿀 수있다. i.method1(); i.method2(); //처음에는 A라는 구현객체의 메소드지만, //B로 변경했을때, B의 구현객체의 메소드로 사용할 수 있다는 것 예를..
[JAVA] 22-06-28 final / protected 접근제한자 ☑
·
STUDY/JAVA
final 클래스와 final 메소드 final 필드 : 수정불가 필드 final 클래스 : 부모로 사용 불가한 클래스 final 메소드 : 자식이 재정의 할 수 없는 메소드 상속할 수 없는 final 클래스 자식 클래스 만들지 못하도록 final 클래스로 생성 public final class 클래스{...} public final class String {...} //아래는 이렇게 하면 안된다는 예시 public class NewString extends String {...} 오버라이딩 불가한 final 메소드 자식클래스가 재정의 못하도록 부모클래스의 메소드를 final로 생성 접근제한 적용할 내용 접근할 수 없는 클래스 public 클래스, 필드, 생성자, 메소드 없음 protected 필드, 생..
[JAVA] 슬라임 게임 만들기
·
STUDY/JAVA
https://github.com/rebornbb/JAVAstudy import slimeLand.*; import java.util.*; public class Main { public static void main(String[] args) { //슬라임과 대치하는 용사 상황을 코드로 구현 //용사를 만들기(1명) // string 메모리를 적게쓰는법 String input = ""; Scanner scan = new Scanner(System.in); System.out.println("용사의 이름을 입력해주세요"); //키보드 입력값을 input 변수에 할당 input = scan.nextLine(); Warrior warrior = new Warrior(input, 500, 200); //whi..
[JAVA] 22-06-21 Getter와 Setter / 싱글톤 ☑
·
STUDY/JAVA
클래스를 선언 할 때 필드는 일반적으로 private 접근 제한을 한다. 읽기 전용 필드가 있을 수 있다. (Getter의 필요성) 외부에서 엉뚱한 값으로 변경할 수 없도록 한다. (Setter의 필요성) Getter priative 필드의 값을 리턴하는 역할을 한다. -필요한 경우 필드의 값을 가공해서 리턴한다. getFieldName() 또는 isFieldName() 메소드를 말한다. -필드 타입이 boolean 일 경우 isFieldName() 이다. class Car { private double speed; public double getSpeed() { //타입은동일하게 //필드의 speed에서 get+ s를대문자로변경 return;}} //private double speed;에 제공 //필..
[JAVA] 22-06-17 Package ☑
·
STUDY/JAVA
main import java.util.package001; //불러올 패키지명 선언해주기 public class main { public static void main(String args[]){ // 인스턴스 생성 // 스택 , 힙 Car myCar = new Car(); // 인스턴스 내용 출력 System.out.println(" : " + myCar.company); // 인스턴스의 내용 출력 // myCar에서 스피드는 0으로 초기값이 되어 있었지만 main에 speed에 대한 필드 데이터를 부여 myCar.speed = 60; System.out.println("myCar : " + myCar.speed); int check = myCar.speedCheck(); System.out.prin..
[JAVA] 2022-06-16 기본 · 참조 타입 ☑
·
STUDY/JAVA
기본 타입변수 / 참조 타입변수 기본형 타입(Primitive type) 총 8가지의 기본형 타입(Primitive type)을 미리 정의하여 제공한다. 기본값이 있기 때문에 Null이 존재하지 않는다. 만약 기본형 타입에 Null을 넣고 싶다면 래퍼 클래스를 활용한다. 실제 값을 저장하는 공간으로 스택(Stack) 메모리에 저장된다. 만약 컴파일 시점에 담을 수 있는 크기를 벗어나면 에러를 발생시키는 컴파일 에러가 발생한다. 주로 문법상의 에러가 많다. 예를 들어 ;을 안붙였다는 이유로 빨간 줄이 쳐지는 경우 참조형 타입(Reference type) 기본형 타입을 제외한 타입들이 모두 참조형 타입(Reference type)이다. wrapper 포장클래스 또한 참조형타입에 해당된다. 빈 객체를 의미하는..
[JAVA] 22-06-15 자바 static ☑
·
STUDY/JAVA
출력값 : static 1 = 11 instance 1 = 11 static 2 = 11 instance 2 = 10 numStatic은 첫번째 num1과 두번째 num2 둘다 영향을 준다. numstatic은 1개이고 num1과 num2는 그것과 연결되어 끌어다 쓰고있는 것.스태틱은 1개다. static 사용 이유 자바에서 main 메소드를 작성할 때 public static void main(String args[]) 이때 static을 쓰는 이유: static을 메소드에 붙이면 정적 메소드가 되고, 변수에 붙이면 정적 변수가 된다. 이렇게 '정적'으로 선언을 하게 되면 객체를 생성해주지 않아도 프로그램 실행시 자동으로 메모리에 적재된다. main 메소드 같은 경우는 객체를 생성하지 않아도 자동으로 ..