자바/자바 기초
-
인터페이스자바/자바 기초 2021. 11. 10. 17:09
인터페이스 인터페이스는 일종의 추상 클래스이다. 추상화 정도가 높아서 추상클래스와 달리 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다. 다른 클래스를 작성하는데 도움 줄 목적으로 작성된다. 작성 interface 인터페이스이름{ public static final 타입 상수이름 = 값; public abstract 메서드 이름(매개변수 목록); } // 모든 멤버 변수는 public static final이어야 하며, 이를 생략 할 수 있다. // 모든 메서드는 public abstract이어야 하며 이를 생략할 수 있다. // static메서드와 디폴트 메서드는 예외 상속 인터페이스는 인터페이스로부터만 상속받을 수 있으며 클래스와는 달리 다중상속, 즉 여러 개의 인터페이스로부터 상속..
-
제어자자바/자바 기초 2021. 11. 10. 17:08
제어자 제어자란? 제어자는 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여한다. 접근제어자: public,protected,default,private 그 외: static,final ,abstract,native,transient,synchronized,volatile,strictfpstatic : 클래스의, 공통적인 스태틱이 사용될 수 있는 곳 - 멤버 변수 메서드, 초기화 블럭 Static은 클래스의 또는 공통적인 의 의미를 가지고 있다. 인스턴스메서드와 static메서드의 근본적인 차이는 메서드 내에서 인스턴스 멤버를 사용하는가의 여부에 있다. 인스턴스 멤버를 사용하지 않는 메서드는 static을 붙여서 static 메서드로 선언하는 것을 고려하자. 스태틱 멤버변수 모든 ..
-
초기화 블럭자바/자바 기초 2021. 11. 10. 17:07
초기화 블럭(initialization block) 클래스 초기화 블럭: 클래스 변수의 복잡한 초기화에 사용된다. 인스턴스 초기화 블럭: 인스턴스 변수의 복잡한 초기화에 사용된다. 초기화 작업이 복잡하여 명시적 초기화만으로는 부족한 경우 초기화 블럭을 사용한다. 초기화 블럭 내에는 메서드 내에서와 같이 조건문, 반복문, 예외처리구문 등을 자유롭게 사용할 수 있다. 생성자 보다 인스턴스 초기화 블럭이 먼저 수행된다는 사실도 기억해 두자. static {/*클래스 초기화 블럭*/} {/* 인스턴스 초기화 블럭*/} 인스턴스 변수의 초기화는 주로 생성자를 사용하고, 인스턴스 초기화 블럭은 모든 생성자에서 공통으로 수행돼야 하는 코드를 넣는데 사용한다. Car(){ count__; serialNo = count..
-
final 멤버 변수 초기화 방법자바/자바 기초 2021. 11. 10. 17:06
생성자를 이용한 final멤버 변수의 초기화 final 변수 "마지막의 또는 변경될 수 없는"의 의미를 가지고 있으며 거의 모든 대상에 사용될 수 있다. 변수에 사용되면 값을 변경할 수 없는 상수가 되며, 메서드에 사용되면 오버라이딩을 할 수 없게 된다. 클래스에 사용되면 자신을 확장하는 자손 클래스를 정의하지 못하게 된다. final이 사용될 수 있는 곳 - 클래스,메서드,멤버변수, 지역 변수 생성자를 이용한 final멤버 변수의 초기화 final이 붙은 변수는 상수이므로 일반적으로 선언과 초기화를 동시에 하지만, 인스턴스 변수의 경우 생성자에서 초기화 되도록 할 수 있다. 이기능을 화룡하면 각 인스턴스마다 final이 붙은 멤버변수가 다른 값을 갖도록 하는것이 가능하다 class card{ finia..
-
메모리 구조자바/자바 기초 2021. 11. 10. 17:06
메모리 구조 메소드 영역 자바 프로그램에서 사용되는 클래스에 대한 정보와 함께 클래스 변수(static variable)가 지정되는 영역 힙(heap) 영역 모든 인스턴스 변수가 저장되는 영역 new 키워드를 사용하여 인스턴스가 생성되면, 해당 인스턴스의 정보를 힙 영역에 저장 __메모리의 나증은 주소에서 높은 주소의 방향으로 할당 __ Stack 영역 메소드가 호출될 떄 메소드의 스택 프레임이 저장되는 영역 JVM은 자바 프로그램에서 메소드가 호출되면, 메소드의 호출과 관계되는 지역 벼눗와 매개변수를 스택 영역에 저장 스텍 영역은 메소드의 호출과 함께 할당되며, 메소드의 호출이 완료되면 소멸 높은 주소에서 낮은 주소의 방향으로 할당
-
배열자바/자바 기초 2021. 11. 10. 17:05
배열 배열이란 배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것 서로 다른 타입의 변수들로 구성된 배열은 만들 수 없다. 배열의 선언과 생성 원하는 타입의 변수를 선언하고 변수 또는 타입에 배열임을 의미하는 대괄호[]를 붙이면된다. 선언방법 int[] age; // 타입[] 변수이름; String[] name; // 타입[] 변수이름; int age[]; // 타입 변수이름[]; String name[]; // 타입 변수이름[]; //대괄호를 타입에 붙이는 쪽을 선호 //대괄호가 변수이름의 일부라기보다는 타입의 일부라고 본다. 배열의 생성 배열을 선언하는 것은 단지 생성된 배열을 다루기 위한 참조변수를 위한 공간이 만들어질 뿐이고, 배열을 생성해야만 비로소 값을 저장할 수 있는 공간이 만들어지는..
-
객체지향자바/자바 기초 2021. 11. 10. 17:05
6장 복습 객체지향 언어 특징 1. 코드의 재사용성이 높다. >> 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다. 2. 코드의 관리가 용이하다. >> 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다. 3. 신뢰성이 높은 프로그래밍을 가능하게 한다. >> 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다. 상속, 다형성과 같은 객체지향개념을 학습할 때 재사용성과 유지보수 그리고 중복된 코드의 제거, 이 세가지 관점에서 보면 보다 쉽게 이해할 수 있을 것이다. 클래스와 객체 2.1 클래스와 객체의 정의와 용도 클래스 클래스의 정의: 클래스란 객체를 정의해 놓은 것이다. 클..
-
접근 제어자 및 초기화 블럭자바/자바 기초 2021. 10. 14. 21:46
제어자 제어자란? 제어자는 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여한다. 접근제어자: public,protected,default,private 그 외: static,final ,abstract,native,transient,synchronized,volatile,strictfp static : 클래스의, 공통적인 스태틱이 사용될 수 있는 곳 - 멤버 변수 메서드, 초기화 블럭 Static은 클래스의 또는 공통적인 의 의미를 가지고 있다. 인스턴스메서드와 static메서드의 근본적인 차이는 메서드 내에서 인스턴스 멤버를 사용하는가의 여부에 있다. 인스턴스 멤버를 사용하지 않는 메서드는 static을 붙여서 static 메서드로 선언하는 것을 고려하자. 스태틱 멤버변수 모든..