반응형

JAVA 32

ArrayList 정리

ArrayList List 인터페이스를 상속받은 클래스로 크기가 가변적으로 변하는 선형리스트이다. 배열과의 공통점 순차리스트 인덱스로 내부의 객체를 관리 배열과의 차이점 -배열- -크기가 고정되어 있다. -ArrayList- -객체들이 추가되어 저장 용량(capacity)을 초과시 자동으로 부족한 크기만큼 저장 용량(capacity)이 늘어난다. -null값이 추가 가능하다. ArrayList 선언법 1 2 3 4 5 6 ArrayList list = new ArrayList();//타입 미설정 Object로 선언된다. ArrayList members = new ArrayList();//타입설정 Company객체만 사용가능 ArrayList member1 = new ArrayList();//타입설정 in..

JAVA 2021.01.22

추상화 클래스와 인터페이스의 공통점 / 차이점

추상화 클래스와 인터페이스의 공통점 / 차이점 1. 공통점 abstract class(추상 클래스)와 interface 는 선언만 있고 구현 내용은 없는 클래스이다. new를 해서 객체를 생성할 수 없다. 추상클래스를 extends 또는, interface를 implements 한 자식만이 객체를 생성할 수 있다. 상속받은 자식은 추상클래스나 인터페이스를 구현해야한다. (java에서는 type이 지정되있기 때문에 선언된 type과 자식의 type이 같아야만 한다.) 2. 차이점 추상클래스는 클래스이다. interface는 구현하기 전에 메소드에 대해 명세된 것이다. (그래서 상속을 받음에도 불구하고 클래스에선 상속이라고 쓰지만 interface는 implemets(구현) 이라고 쓴다.) 추상클래스는 ab..

JAVA 2020.09.11

인터페이스 (Interface)/ 추상화 클래스와 인터페이스의 공통점 / 차이점

인터페이스란 일종의 추상 클래스이다. 다만 추상 클래스보다 추상화의 정도가더 크다고 생각하면 된다. 특징 1.멤버는 추상 메소드와 상수만으로 구성된다. # 인터페이스는 메소드와 상수만을 가지며 필드는 가지지 않는다. # 메소드는 모두 추상메소드이다. 그러나 메소드 선언 시 abstract 키워드를 생략할 수 있다. 2. 모든 메소드는 public이며 생략이 가능하다. # 모든 메소드는 public 접근 지정자이다. 주로 생략하여 사용한다. 3. 상수도 public static final을 생략하여 선언할 수 있다. # 상수는 public static final 속성이며 생략 가능하다. 4. 인터페이스의 객체를 생성할 수 없다. # 인터페이스는 추상 메소드만 가지기 때문에 원칙적으로 객체를 생성할 수 없다..

JAVA 2020.09.10

캡슐화 /getters and etters

캡슐화 = private 멤버변수를 메소드에 넣어서 캡슐화(은닉화)를 시켜준다. 사용 이유 : 조건이 다른 값이 들어가지 못하게 경고하기 위함이라고 생각하면된다. 변수 (메모리공간)의 직접접근을 제한 하기 위해 private 사용 메소드 - 접근허용을 위해서는 public 사용 직접접근의 위험성 멤버변수의 직접접근은 데이터의 값을 변질시킬수 있는 보안의 큰 문제점을 가지고 있음 메소드에 의한 변수의 변환이 기본적인 방법이다. setter - 변수의 값을 지정 getter - 변수의 값을 호출 (이클립스 = source->getters setters를 클릭하면 쉽게 만들 수 있다 ) 메소드이름 변수 private int abc; -set변수명(인수) 1. 변수명의 첫글자는 대문자 2. 사용하는 인수명은 멤..

JAVA 2020.09.09

인터페이스 익명 구현 객체/ 다중 인터페이스/인터페이스 사용

익명구현 객체 -명시적 구현 클래스 작성을 건너뛰어 바로 구현객체를 얻는 이름없는 구현 클래스와 객체생성을 동시에 하는것 인터페이스 변수 = new 인터페이스 { //인터페이스에 선언된 추상 메소드의 실페 메소드 선언 }; 인터페이스의 추상 메소드를 모두 재정의하는 실체 메소드가 있어야한다. 추가적으로 필드 및 메서드 선언이 가능하나 익명객체 안에서만 사용가능 인터페이스 변수로 접근이 불가능 구현실행문이 끝나면 세미클론을 붙여줘야한다. ex) A a = new A( ) { }; 다중 인터페이스 다중인터페이스는 하나의 객체가 둘 이상의 인터페이스 구현하는것을 말한다. 위의 그림을 설명하자면 public class 구현클래스명 implements 인터페이스 A, 인터페이스 B { //인터페이스 A에 선언된 ..

JAVA 2020.09.08

인터페이스 / 선언/ 구현

인터페이스는 코드와 객체가 통신하는 접점을 말한다. 개발코드는 객체를 사용할때 인터페이스의 메소드만 알고있으면 된다. 인터페이스는 객체를 교환하여 사용할 수 있는데 이러한 기능은 개발코드를 변경하지 않고도 리턴값 및 실행내용을 다양하게 만들 수 있다. 인터페이스 선언법 [public] interface 인터페이스명{'''} 인터페이스의 구성멤버로는 상수, 추상메소드, 디폴트메소드, 정적메소드가 있는데 는 자바 8이후로 가능해졌다고 한다. 추가적으로 인터페이스 선언에서 알아두어야 할 부분은 상수 필드만 선언가능(데이터를 저장하지 않는다.) 선언된 필드는 모두 public static final이다. (이는 생략시에도 컴파일과정에서 자동으로 추가된다.) 상수명은 대문자로 작성 (단어가 결합되면 낙타표기법 사..

JAVA 2020.09.07

인터페이스의 다형성

인터페이스를 이용해 다형성이 가능하다. 인터페이스 타입의 참조변수로 이를 구현한 클래스의 인스턴스를 참조할 수 있으며, 인터페이스 타입으로의 형변환도 가능하다. ex) Fightable f = (fightable)new fighter(); 또는 Fighteable f = new fighter(); 이에 따라 인터페이스는 메서드의 매개변수의 타입으로 사용될 수 있다. ex) void attack (fightable f) { // } 위의 코드를 분석해보면 attack메서드 호출시 fightable 인터페이스를 구현한 fighter클래스의 인스턴스를 매개변수로 제공해야한다. 리턴타입이 인터페이스의 참조변수일 경우 메서드가 구현 클래스의 인스턴스를 반환한다는 의미이다. 인터페이스를 구현한 클래스의 자식클래스 ..

JAVA 2020.09.06

자바/ wrapper Class

wapper Class -기본형 타입을 객체화 하도록 도와주는 클래스 기본형 타입은 객체화를 해줄 필요가 없다. 하지만 intinteger 나 String 타입은 객체화가 가능하기 때문에 클래스 타입이 아닌 wapper Class라고 불러주는게 맞다. wrapper class 기본형 타입 wrapper class byte Byte short Short int Integer long Long float Float double Double char Charater boolean Boolean void Void -wapperClass -> 기본형 타입 : 박싱(Boxing) -wapperClass Integer i = 10; //오토박싱(autoboxing) JDK 1.5 버전 이후 적용 int i1 = i...

JAVA 2020.09.04

java/ to String 주소값 출력 값 출력으로 오버라이드 하기

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 package self_Am; public class ToString { int data1 =10; int data2 =20; int data3 =35; int data4; public static void main(String[] args) { ToString to = new ToString(); System.out.println(to); System.out.println(to.data1); } } Colored by Color Scripter cs 결과 self_Am.ToString@51cdd8a 10 기본적으로 객체명을 출력할 때에는 (13행의 (to)뒤에)는 to String 이 생략되어 있다. 떄문에to라는 객체의 주소값..

JAVA 2020.09.03

Object Class /equals() /==

== 과 equals는 두 주소값이 같은지 확인하는 메서드이다. 단, String 클래스에서 eqauls()를 재정의(오버라이딩ㅠ ) 하였기 때문에 String 타입이라면 값을 비교한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 package self_Am; public class ObjectClass { public static void main(String[] args) { String data1 = new String("ABC"); String data2 = new String("ABC"); String data3 = "ABC"; String data4 = "ABC"; System.out.println(data1 == data2); System.out.prin..

JAVA 2020.09.02
반응형