본문 바로가기

Java

(16)
JAVA 추상메소드 & 인터페이스 * 추상메소드 & 추상클레스 메소드의 선언부만 있고, 구현부는 없는 메소드를 의미한다. abstract 키워드를 선언부에 추가하여 추상메소드를 저정한다. 주로 오버라이딩 하여 사용하는 메소드이다. 오버라이딩 하기 때문에 당연히 final, static 키워드는 사용불가. abstract public void setItem(); 이렇게 선언한다. 추상메소드가 하나라도 있는 클레스를 추상클래스라고 부른다. abtract class buildings {} 이렇게 선언한다. 추상클레스는 반드시 추상클래스만 가지는 것이 아니라 일반 콘크리트 메소드도 가질 수 있다. 추상클래스를 이용해서 객체를 생성할 수 없다. 예를들면, vehicle 이라는 클래스를 추상클래스로 하여 자동차 , 배 , 비행기 클래스 등이 상속하..
JAVA main() 메소드가 public static인 이유. public static void main(String[] args) 1. main 메소드가 static 접근 지정자인 이유 main 메소드가 포함되어 있는 클레스의 객체 생성과는 상관없이 JVM이 프로그램을 시작할 때 가장 처음 수행하는 부분이기 때문에 static으로 지정해서 무조건 실행할 수 있도록 하기 위함이다. 2. public 인 이유 비슷한 개념으로 클래스가 어느 위치에 있건 JVM이 접근 가능하도록 하기 위해서 pulic 접근지정자로 해야한다 .
JAVA Wrapper 클레스 , static 키워드 자바에서는 객체지향적인 개발이 이루어 지기 때문에 기본 Primitive 데이터들을 ( int, char 등 ) 객체로 바꾸어 주는 클래스를 제공하는데 그것을 Wrapper 라고 부른다. Ex ) int number = 100; => Interger n = new Integer(number); 반대로 객체를 기본 데이터로 바꾸는 방법은 Ex ) int number = n.intValue(); 라는 메소드를 사용한다. primitive data type Wrapper class boolean Boolean byte Byte char Character short Short int Integer long Long float Float double Double * static 키워드는 객체 생성없이 클레스의 이..
JAVA 다형성에 관해.. 다형성은 다양한 타입의 레퍼런스 변수가 동일한 형태의 객체를 참조할 수 있다는 의미. 부모의 객체가 자식의 클레스 형태객체를 참조하는 방식 등을 말한다. class Parent class Childen extends Parent 의 두 가지 클레스가 있을 때. Children c = new Children(); 라고 선언하지만, Parent p = new Children(); 와 같이 사용도 가능하다. 다른 타입의 레퍼런스 변수가 동일한 객체를 참조하고 있다. * Virtual Method Invocation은 상속관계에서 오버라이딩된 동일한 이름의 method가 충돌했을 때 실행타임 시점의 메소드가 컴파일 타임 시점의 메소드보다 우선적으로 실행된다. Ex) Parent의 getName()을 Childr..
JAVA 잡다한 정리. 1. super 와 super()의 차이 super는 부모 객체의 레퍼런스 값을 가지고 있는 키워드이고, super() 부모 객체의 생성자 호출을 의미한다. super는 자식 클레스의 생성자 함수 군현부의 맨 첫 줄에 작성되어야 한다. ( WHY? SUN 마음이겠지 ) * this와 this() 도 마찬가지로 this는 객체 레퍼런스, this()는 자신의 생성자 호출 키워드로 사용된다. ( this()역시 생성자 맨 첫 줄에 작성되어야 하기 때문에 super()와 동시에 사용 되는것은 불가능하다 ) 2. 상속에서 메소드 오버라이딩 접근지정자 리턴형 메소드이름 ( argument ) throws 예외처리 {} 인 경우 접근지정자는 더 넓은 범위로만 변경가능, 리턴형, 메소드이름, argument는 변경 ..
JAVA 배열 자바에서 배열은 기본적으로 객체로 생성된다. type 객체이름[] = new type[생성갯수]; 혹은 type [] 객체이름 = new type[생성갯수]; 의 형태로 만들어 진다. example int [] phoneNumber; or int phoneNumber[]; 선언후에는 phoneNumber = new int[300]; 과 같은 형태로 생성을 해준다. int [] phoneNumber = new int[300]; 처럼 한번에 처리가 가능하다. int [] phoneNumber 에서 phoneNumber 이라는 배열변수가 메모리의 Stack 영역으로 할당되고 new int[300]; 이라는 선언에서 int형 data type 300개가 Heap 영역에 할당되어진다. 각 배열을 생성했을 때 데이..
JAVA 문법 Part 1 A . 주석 1. /* 텍스트 */ : 여러 라인에 주석을 달 때 사용. 2. // 텍스트 : 보통 한 줄 주석에 사용한다. 3. /** 다큐먼테이션 */ : JDK javadoc 툴을 통해서 자동으로 Documentation 을 생성. B. 이름을 지정할 때 지킬 일반적인 관례 1. Class name : 첫글자는 대문자로 지정, 단어구분시 _ 를 사용하지 않고 대문자로 구분 ex) TestAppl 2. Method name : 첫글자는 소문자로 사용한다. 단어 구분시 _ 를 사용하지 않고 대문자로 구분 ex) getName() 3. Varialbe name : method name과 일반적으로 규칙이 같으나, 상수일 경우 변수 이름 전체를 대문자로 작성하고 단어구분시 _ 사용한다. ex) 상수 : M..
JAVA 용어 정리 자바는 참 복잡하고 신기하다. 그리고 뭔 용어을 이렇게도 많이 만들어놨는지.. 내가 까먹을 것이 분명하기 때문에 적어 놓는다. SDK (Standard Development Kit 혹은 Software Development Kit ) SDK는 자바뿐만아니라 모든 개발언어의 소프트웨어 개발 킷을 말한다. JDK ( Java Development Kit ) 말 그대로 자바용 개발 도구 J2SE Development Kit라고 표현하기도 한다 J2SDK ( Java2 Standard Development Kit 혹은 Java2 Platform Standard Development Kit ) java2 platform이 출시되었을 당시 java1과 구분하기위해 J2SDK라고 했는데. 즉, 현재는 java2 pl..