목록Java (68)
Hyunebee
abstract class - 추상 클래스 추상 클래스는 미완성 클래스이며 상속을 통해 완성해주어야 한다. 추상 클래스는 추상메서드를 포함하고 있다는 것을 제외하고는 일반 클래스와 다른게 없다. abstract method - 추상 메서드 추상 메서드는는 메서드의 선언부만 작성해서 사용하는 것을 추상 메서드라고 한다. abstract를 붙혀주는 이유는 자손 클래스에서 추상메서드의 상속을 강요하기 위해서이다. Interface 인터페이스 또한 추상클래스와 비슷하다 인터페이스는 추상화클래스 처럼 추상메서드를 같이만 abstract보다 추상화 정도가 높기 때문에 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다. 상수와 추상메서드만을 구성원으로 가지고 있을 수 있다. interface 인터페이..
import java.util.*; class Main { public int solution(int[][] arr, int n){ int MAX_Result = 0; int result_w = 0; int result_h = 0; for (int i = 0; i < n; i++){ for (int j =0; j < n; j++){ result_w += arr[i][j]; // 가로방향의 합 result_h += arr[j][i]; // 세로방향의 합 } MAX_Result = Math.max(result_h,MAX_Result); MAX_Result = Math.max(result_w,MAX_Result); result_w = result_h = 0; } result_w = 0; result_h = 0..
다형성 객체 지향에서 다형성은 여러 가지 형태를 가질 수 있는 능력을 의미한다. 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 구현하였다. class Tv{ boolean power; int channel; void power(){ } void channelUp(){ channel++; } void channelDown(){ channel--; } } class CaptionTv extends Tv{ String context; void caption() { } } Tv t = new Tv(); 부모타입 : 업캐스팅(형 변환 생략가능) 자손타입
import java.util.*; class Main { public int[] solution(int n, int[] arr){ int[] raking = new int[n]; for(int i =0; i arr[i]){ raking[i]++; } } } return raking; } public static void main(String[] args){ Main T = new Main(); Scanner kb = new Scanner(System.in); int n=kb.nextInt(); int[] arr=new int[n]; for(int i=0; i
import java.util.*; class Main { public int solution(int[] num) { int result = 0; int numberic = 0; ArrayList arrayList = new ArrayList(); for(int i =0; i< num.length; i++){ if(num[i] == 1){ numberic++; if(i == num.length-1){ arrayList.add(numberic); } }else if(num[i] == 0){ arrayList.add(numberic); numberic = 0; } } for(int i = 0; i < arrayList.size(); i++){ arrayList.get(i); result += (arrayLi..
제어자 제어자는 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여해준다. 접근제어자 - public, protected, default, private 그 외 - static final, native, transient, synchronized, volatile, strictfp static static은 인스턴스와 상관없이 항상 일정한 값을 가진다. 하나의 변수를 모든 인스턴스가 공유하기 때문이다. static은 멤버변수, 메소드, 초기화 블럭에서 사용한다. 멤버변수 모든 인스턴스에서 사용되는 공통된 변수 인스턴스를 생성하지 않고 사용할 수 있다. - 클래스가 메모리에서 로딩될때 같이 생성 메서드 인스턴스를 생성하지 않고 사용할 수 있다. static 메소드 안에서는 인스턴스 멤..
오버라이딩 조상클래스에서 상속받은 메소드를 재구성해서 사용하것을 오버라이딩이라고 한다. class Car{ void Engine(){ System.out.println("자동차입니다."); } } class superCar extends Car{ @Override void Engine() { System.out.println("슈퍼카입ㅂ니다."); } } 이처럼 상속받은 메소드를 변경해서 사용할 수 있다. 여기서 주의할점 - 메소드의 이름이 같아야 한다. - 메소드의 매개변수가 같아야 한다. - 메소드의 반환타입이 같아야 한다. 즉 선언부가 같아야 한다. 여기서 접근제어자와 exception은 변경할 수 있다. -접근제어자는 조상 클래스의 메서드보다 좁은 범위로 변경할 수 있다. -조상클래스의 excep..
상속 상속이란 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 이러한 특성은 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산과 유지보수에 크게 기여한다. 사용법은 상속받고자 하는 클래스에 extends와 상속시킬 클래스를 지정해주면 된다. ex class Child extends Parent{ } 이때 Parent는 조상클래스 Child는 자손클래스라고 한다. 다른 말로는 부모클래스 - 자식클래스, super-sub, base-derived 라고 표현하기도 한다. 부모클래스와 자식클래스의 관계 class Parent{ int age; } class Child extends Parent{ void MethodA(){ System.out.println("Method A"); } ..