본문 바로가기

IT/JAVA19

[JAVA/자바] interface (인터페이스) - 다중 상속 인터페이스의 역할 인터페이스를 사용하는 객체가 있을 때 그 객체는 반드시 인터페이스의 메소드들을 구현하도록 제약을 걸어주는 것이다. (동일한 기능을 강제적으로 수행), 규격을 엄격하게 준수할 수 있도록 할 수 있습니다. 인터페이스 선언 모든 인터페이스의 멤버는 public이다. 또한 인터페이스에서 가지는 상수, 추상메소드 각각 앞에 붙는 public static final, public abstract는 생략이 가능하다. 인터페이스는 추상클래스와 다르게 함수가 존재한다는것만 알려주어야 한다. { } 사용 X 이후 클래스가 인터페이스 상속받을때 구체적으로 구현하여야 한다. 인터페이스 상속, 구현 추상 클래스는 상속할 때 extends를 썼지만 implements를 사용한다. 코드를 보면 class Anim.. 2022. 11. 2.
[JAVA/자바] final - 변수, 메소드, 클래스에서 사용방법 final - 절대로 변하지 않는 것을 정할 때는 final을 사용한다. - 변수, 메소드, 클래스 모두에서 사용할 수 있다. - 변수와 메소드에서는 재정의가 불가능 해지며 클래스에서는 상속이 불가능해진다. ○ 변수 변수를 만들어 줄때 앞에 final을 붙여주고 위와 같이 다시 재정의 해주면 Error. ○ 메소드 Child 클래스가 Parent 클래스를 상속받고 있는 코드. 오른쪽 코드는 Parent Class의 print method에서 final을 썼다. 그래서 Child class에서 상속받은 print method를 재정의하려 했지만 되지 않는다. ○ 클래스 Child 클래스가 Parent 클래스를 상속받고 있는 코드. 오른쪽 코드는 Parent Class에서 앞에 final을 썼다. 클래스에 .. 2022. 11. 2.
[JAVA/자바] abstract 추상 클래스 - 오버라이딩 추상 - abstract 추상은 실체 간의 공통되는 특성이나 속성을 추출한 것을 말한다. 예를 들어 고양이, 개, 호랑이의 공통되는 특성은 동물이다. 이와 같이 구체적인 실체가 아니라 공통되는 특성이 추상적인 것이다. 실체 클래스 = 객체를 직접 생성할 수 있는 클래스 추상 클래스 = 실체 클래스들의 공통적인 특성을 추출해서 선언한 클래스 추상 클래스와 실체 클래스는 상속관계이다. (상속해서 사용하도록 강제한다.) 추상 클래스가 부모이고 실체 클래스는 자식관계이며 실체 클래스는 추상 클래스의 특성(필드, 메서드)을 물려받고, 추가적으로 특성을 가질 수 있다. ○ 추상 클래스 선언 sound라는 추상 메소드를 가지고 있기에 클래스 앞에 'abstract'를 써서 추상 클래스를 만든다. 추상 메소드는 메소드.. 2022. 11. 2.
[JAVA/자바] 배열 Array - new 연산자 배열생성 방법 배열 변수는 한 개의 데이터만 저장할 수 있다. 하지만 배열을 사용하면 많은 양의 데이터를 공간에 담아서 사용됩니다. 다음은 길이가 5인 int형 배열을 생성한 것입니다. (5개의 데이터를 담을 수 있는 공간) 배열의 순서(인덱스)를 말할때는 0부터 시작한다. 길이가 5인 배열을 생성했기 때문에 array [0] ~ array [4]까지 값이 저장될 수 있는 공간이 있는 것이다. 각 공간에 데이터가 순서대로 저장된다. 배열 예제 9 ~ 10 코드 : 사용자로부터 과목 수를 입력받아서 과목수만큼 배열을 만들어 준것. 13 ~ 15 코드 : 이후 사용자로부터 받은 점수를 exam[0] ~ exam[n]에 저장. 17 ~ 20 코드 : 점수를 다 더해서 변수 sum에 넣어줌. 21 코드 : sum을 과목 수로.. 2022. 11. 2.
[JAVA/자바] - Scanner 클래스 ( 사용법, next, nextLine) Scanner Scanner클래스를 사용하면 사용자와 상호작용할 수 있다. Scanner sc = new Scanner(System.in); 을 사용해서 클래스 객체를 생성한다. 자바에서 제공하는 라이브러리를 가져오기 위해서는 import를 해준것이다. System.in = 콘솔창에서 입력한 데이터 sc nextln( )를 통해 사용자가 입력한 int형 데이터를 i에 넣어주었다. 입력 받은 데이터는 내부적으로 어떠한 처리를 한 뒤에 다시 사용자에게 그 값을 반환할 수 있습니다. sc.close( ); = 입출력을 닫아줌으로써 프로그램을 종료시킨다. 출력 (123을 사용자가 입력했다는 가정) 정수를 입력하세요 : 123 입력된 정수는 123 입니다. File 입출력 input.txt에 있는 정수에 각각 1.. 2022. 11. 2.
[JAVA/자바] 반복문 - for & while & do while 반복문 - for 정해진 횟수만큼 반복한다. 똑같은 실행문을 간단하게 반복적으로 실행한다. 코드의 양을 획기적으로 줄여준다. 예제 ) 100개의 실행문을 하지 않고도 3줄로 작성 가능하다. 출력 : 1~100까지의 합은 5050입니다. 반복문 - while 반복 횟수를 모를 때 주로 사용한다. 조건식의 결과가 True인 동안 { } 안을 반복한다. 조건식의 결과가 False이면 while문을 빠져나간다. 예제 ) 1,2,3 ''' 순차적으로 더해서 몇까지 더해야 sum이 100을 넘지 않는지에 대한 코드. 출력 : 0 - 0 1 - 1 2 - 3 . . 13 - 91 반복문 - do while do { } 먼저 실행 후 while 조건식을 확인한다. while 조건식이 참이면 다시 do { } 실행해준다.. 2022. 11. 2.
[JAVA/자바] 조건문 - if & switch 조건문 - if 여러개의 조건식을 사용해서 여러가지 경우의 수를 처리 예제 1 ) if문의 조건식이 True이면 if문의 블록이 실행되고, 두 번째 문장부터는 실행하지 않는다. 만약 False이면 else문의 블록을 실행한다. 출력 : 점수가 90점보다 낮습니다. * if문은 else와 같이 사용된다. 예제 2 ) 조건문이 여러개일때는 else if를 사용한다. else if의 수는 제한이 없다. else if문의 마지막에는 else를 사용한다. 출력 : 성적: A+입니다. * 모든 조건식 False일 경우 if문을 벗어나게 된다. 조건문 - switch 처리해야 할 경우의 수가 많을 때 사용 switch 문의 조건식 결과는 정수, 문자열이어야 함 case 문의 값은 정수, 상수, 문자열 가능, 중복은 .. 2022. 11. 2.
[JAVA/자바] 연산자 - 논리 연산자(&&, ||, ^, !), 삼항 연산자, 제곱 pow( ) ○ 논리 연산자 구분 연산식 결과 피연산자 모두가 True일 경우에만 True AND (논리곱) True True False False && True False True False True False False False 피연산자 중 하나만 True이면 True OR (논리합) True True False False || True False True False True True True False 피연산자중 하나는 True 다른 하나는 False일 경우만 True XOR (배타적 논리합) True True False False ^ True False True False False True True False 피연산자의 논리 값을 바꿈 NOT (논리부정) ! True False False True 예제 ).. 2022. 11. 2.
[JAVA/자바] method - static JAVA의 메소드 코드를 보면 public static void와 public void가 있다. static이 붙고 안붙고의 차이는 무엇일까? 메소드를 정의할 때 static이 있으면 class 소속 메소드를 정의할 때 static이 없으면 instance의 소속이다. 예제 ) 성격이 비슷한 a , b메소드를 class Print로 그룹핑 하였다. class Print의 a메소드와 b메소드에 인자값을 넣어주고 호출하였다. 하지만 새로 메소드를 호출할 때마다 인자 값(- , /)을 호출해야 하므로 그리 효율적이지 않다. 예제 2 ) 인스턴스를 만들고 t1, t2의 delimiter 값을 지정해주었다. 그리고 인스턴스 t1, t2의 a, b메소드를 호출해주었기 때문에 인자값(- , /)을 추가하지 않아도 된.. 2022. 11. 2.