본문 바로가기

반응형

JAVA/JAVA

자바 개념 - 인터페이스 interface ** 인터페이스자바는 클래스의 다중상속을 금지한다.(다중상속이란 ? 부모클래스가 두가지이상인 경우를 말함)다중상속의 효과를 기대할 목적으로 사용하는 개념이 인터페이스이다. 인터페이스는 완전추상 개념이다.인터페이스의 구성요소는 상수와 메소드 선언부로만 구성되어야 한다.즉, body가 구체화된 메소드를 가질 수 없다.메소드이름 앞에 특별히 abstract을 안써도 자동 추상메소드이다. 인터페이스는 '구현한다' 라고 표현하며 implements 키워드를 사용한다. 인터페이스끼리는 상속이 가능하고, 다중상속이 가능하다. ** 인터페이스 끼리의 상속interface A{public void pro();} interface B extends A{public void info();} class Hanb impleme.. 더보기
자바 개념 - final 키워드 설명 및 예제 final 키워드 1. 변수이름 앞에 사용2. 메소드이름 앞에 사용3. 클래스이름 앞에 사용 일반적으로 변수라고 하는 것은 프로그램 실행 중에 변수의 값이 변할 수 있다는 것을 말한다.하지만 변수가 처음 정해진 값 이외에 다른 값을 가지면 안되는 경우가 있다면 변수 이름 앞에 final을 붙여서상수처럼 사용 할 수 있다.객체마다 메모리 잡을 필요가 없기때문에 static 붙여준다. 접근명시자 또한 public으로 해줌 형태 1. 변수앞에 final 붙임2. 변수명은 대문자를 써서 상수인 것을 표시함3. 고정값이기 때문에 메모리를 객체마다 잡을 필요 없어서 static을 붙여준다. 형태 예int age =20;public final static String ADDR = "suwon";예) int age =.. 더보기
자바 개념 - super, super() 비교 설명 ** super, super()를 비교하여 설명하시오super : 부모클래스 멤버에 접근하고자 할 때 사용super(): 부모클래스의 생성자를 요구 할 때 사용 ==> 반드시 첫번째 문장에 와야 한다 1. super 의 예(접근)2. super() 의 예(호출)3. 항상 상속클래스의 생성자안에 super() 가 생략되있다는 것 설명4. 밑에 예제는 생성자의 기본생성자 관련 class Human{public String toString(){}} class Student extends Human{public String toString(){return super.toString() + " ";}} class Human{public void info(){}} class Student extends Human{.. 더보기
자바 개념 - 추상클래스와 추상메소드 설명 추상클래스와 추상메소드 설명 부모클래스에서 자식클래스에게 물려줄 기능이 있는데 이 기능을 일반화 하지 못할때 abstract 이란 것을 사용하는 것부모클래스안에 메소드의 body를 비우고 메소드명 앞에 abstract 을 붙여야 '추상메소드' 인걸 인지한다. 추상메소드가 있는 클래스는 반드시 abstract을 붙여야 한다.추상(부모)클래스는 상속(자식)클래스에게 책임을 지게 한다. 추상클래스내의 모든 추상메소드를 재정의 하게끔 강제성 부여 또, 추상클래스는 구체화 되지 않는 메소드를 포함하므로 객체화 될 수 없다 1. 잘못된 예2. 잘된 예 모든 2차원 도형이 가져야 할 공통적인 속성과 동작을 뽑아서 일반화 시키기 class Shape{int x;int y;double area;double dulle; .. 더보기
자바 개념 - method overloading 과 method overriding 비교 method overloading 과 method overriding 비교 method overloading메소드 이름이 중복되었을때 사용하는 것메소드 수행 기능 동일, 매개변수 형태만 다른것(자료형 혹은 개수가 다른것)매개변수에 따라 다른 이름을 가질 필요가 없다 method overriding메소드가 상속되었을때 사용하는 것부모클래스로부터 받은 기능이 마음에 들지 않아서 재정의 하는것단, 메소드이름, 매개변수의 개수와 자료형까지 동일 해야함 1. 재정의 잘못된 예2. 재저의 잘된 예 class A{public void pro(){}public void info(){}} class B extends A{public void info(String name){}}class A{public void pro(.. 더보기
자바 개념 - this, this()에 대한 구별 this, this() 에 대하여 구별하여 설명 this 란? : 생성자나 메소드 내에서 쓰임생성자나 메소드의 매개변수이름을 의미 있는 이름으로 정해 주다 보면 멤버변수 이름과 겹치게 된다.이때 멤버변수 자신을 구별할 목적으로 사용된다. 1. 매개변수를 의미없게 사용한 것2. 매개변수가 우선순위이기에 멤버변수는 변하지 않는 것3. 매개변수를 의미있게 사용한 것 class Person{String name;int age; public Person( String n, int a){name = n;age = a;}} class Person{String name;int age; public Person( String n, int a){name = name;age = age;}} class Person{Strin.. 더보기
자바 개념 - 생성자에 대한 설명과 주의사항 생성자란?객체 생성시에 자동 수행되어 매개변수를 초기화 할 목적으로 사용하는 특수한 메소드일반메소드는 호출문에 의해서 동작하지만 생성자는 객체 생성시에 자동 수행된다.따라서 return의 개념이 없다! 생성자를 만들때 주의사항 : 클래스이름과 똑같은 이름으로 메소드를 정의하되 리턴타입을 따로 적지 않는다.생성자 앞에 void를 붙여서는 안된다. void 란 리턴값이 없다는 것을 의미하기 때문이다. 생성자는 필요하다면 중복정의 될 수 있다.==> 매개변수의 개수가 다르거나 자료형이 달라야 한다.==> 생성자가 중복정의 되어 있을때 생성자 내에서 또다른 생성자를 호출할 수 있다.this();이문장은 반드시 생성자내의 첫번째 문장에 와야한다. 더보기
자바 추상메소드 abstract 관련 설명 추상메소드 abstract (메소드 앞에 붙임): 자식들의 메소드를 일반화 시키지 못함(각기 다른 방법이 있기 때문에) ex. 도형계산 (원, 삼각, 사각 등등)지금은 정의 할 수 없어서 메소드를 예전에는 빈칸을 해놨지만 지금은미래의 자식들에게 재정의 해야만 한다는 책임(강제성)을 부여 미래에 생성될 자식클래스들이 공통으로 가져야 할 속성과 동작들을 미리 정의하여 일반화하여부모클래스를 정의 할 수 있다. 미래에 이차원 도형들이 가져야 할 속성과 동작들을 모아서 일반화 시키고자 한다.모든 이차원 도형은 x,y 좌표와 면적 cir, 둘레 ext의 정보를 가지며또, 모든 도형은 면적을 계산하는 동작calcCir()과 둘레를 계산하는 동작 calcExt()을 가지게 하고자 한다.그런데 이시점 즉 Shape클래스.. 더보기

반응형