본문 바로가기

Wanna be a Programmer

Java Programming - 의존관계(Dependency), Final Final : 변수, 메소드(instance), class - 변경이 되지 않는다.- 메소드 - 하위 클래스에서 overriding을 할 수 없다.- class - 하위 클래스를 가질 수 없다.- 변수 - 변수의 상수화 → 한 번 값이 대입되면 다른 값을 대입할 수 없다. ⑴ Instance 변수 - 묵시적인 초기화가 없다. → 값 대입 : 명시적 대입(명시적 초기화), 생성자에서 대입⑵ static 변수 – 선언시 값 대입 ex) public static final ⑶ 지역변수(Local Variable) - 사용 전까지 대입- final 변수의 이름 관례 : 대문자 ex) TAX_RATE 의존관계(Dependency) - 하나의 Class가 다른 Class를 사용하는 관계- Has a 관계 : Att.. 더보기
Java Programming - 다형성(Polymorphism), Heterogeneous Collection 다형성(Polymorphism) - 부모Type의 변수에 자식Type 객체를 대입 primitive typeshort s;byte b;int i;long l;l = s; l = b;l = i;l = 30l;-> 다형성은 객체에 관한 것이지만 long type의 l에 다른 type인 short, byte, int의 데이터를 대입할 수 있다는 개념이 다형성이다. But, primitive type에서는 다형성이라고 하지 않는다. Animal eat() Dog Catcry()Animal a = new Animal();a = new dog();a = new cat();a = new Human();Animal c = new Cat();c.eat();c.cry(); →컴파일 에러(type check) 변경 Anim.. 더보기
Java Programming - 상속, 메소드 오버라이딩, super 상속(Inheritance)- 기존의 class에 정의된 변수나 메소드를 재사용하여 새로운 class를 만드는 것- Java는 class간의 상속에서는 단일상속을 지원, 다른 객체지향언어는 주로 다중상속을 지원- 상속의 사용 ex) public class Animal { } public class Human extends Animal : [제한자]class 식별자 extends 부모class이름 { }- 상위 클래스의 객체와 하위 클래스의 객체는 동일한 곳에 생성되는 것이 아니라 상위클래스 객체 따로 하위클래스 객체 따로 생성되며 하위 클래스는 상위 클래스의 속성과 메소드를 상속 받을 수 있도록 링크가 되어있어 상위 클래스의 속성과 메소드를 호출 할 수 있다.- super는 상위 클래스의 생성자 호출 또.. 더보기
Java Programming - Static vs Instance, 접근제한자 Instance vs Static variable, method - Instance variable의 경우 각 객체마다 instance variable이 생성된다.- static 변수는 하나이므로 불변의 값 혹은 여러 곳에 공통적으로 쓰이는 값(파이), 고정적으로 할당을 해놓고 바뀌지 않는 변수는 static으로 작성한다. static – 메소드, attribute(local 변수 X), nested class(class 안에 선언된 class)에 사용되는 제한자(modifier) ex) static class A { static class B { } }① class의 멤버가 된다.(객체의 것이 아니라 class의 것이다)② 호출 : class이름.멤버 ex) class A { static int a; .. 더보기
Java Programming - 패키지, Import, JAVA 소스 파일 구조 패키지(package) - class file을 모아 놓은 directory(folder) → src 코드 작성시 class 에는 package에 들어갈 것인지 선언해야 한다.- 구문 : package Root.package이름.[sub_package경로]- package 선언은 소스코드 file당 한번만 할 수 있다.- package 선언은 소스코드의 첫 실행(명령)문으로 와야만 한다.- package명은 식별자 규칙에 따라 준다. → 관계 : 소문자, domain명 거꾸로 ※ 디렉토리 컴파일 : javac –d . *.java Import - 다른 package의 class를 사용 할 때(변수선언, 생성자 호출 등) 그 class의 경로를 등록- 구문 : import package명.Class명; i.. 더보기
Java Programming - 조건문, 반복문, 배열 조건문(분기문) : if문, switch-case문 - if(조건) { 실행코드 } : 조건의 결과 true인 경우만 실행코드 실행 * if(조건) { 실행코드 } else { 실행코드 }if 조건의 결과가 true인 경우 if절의 실행코드 실행, false인 경우 else절의 실행코드 실행 * if(조건) { 실행코드 } else if(조건A) { 실행코드 } else { 실행코드 } - Switch-case문 * switch(식 : 메소드 포함, byte, short, char, int, Enum, String) { case 값1: 실행구문 A; case 값2: 실행구문 B; default : 실행구문 C; }→ 식의 값이 값1이면 구문 A를 실행, 값2이면 구문 B를 실행, 그 밖의 값인 경우 구문.. 더보기
Java Programming - 데이터 타입, Cast 연산자 Data TypeData type - Data(값)의 구분(종류) → 기준: 형태, 크기① Primitive Data Type(기본 data type) → 1개의 값 표현 ex) int(integer)② Reference Data Type(참조 data type) → 여러 값(attribute)이 합쳐져 하나의 값을 표현③ 사용자 정의 data type(type : class, 값 : instance) ex) String - 기본 값 : NULL(아무 객체도 참조하지 않는다) → null값을 가진 변수.xxx는 실행 시 오류 발생 Primitive Data type : 언어 차원에서 제공하는 type① 정수 : byte, short(값 표시 방법 없음), int(4byte, 정수의 기본형), long(8.. 더보기
Java Programming - 캡슐화(Encapsulation), 지역변수 캡슐화(Encapsulation) → Information Hiding(은닉성) - public interface, private implementation인터페이스는 공개, 구현은 감춘다. - 캡슐화의 장점① 데이터 보호데이터를 인터페이스로 감싸줌으로 인해서 Data를 보호할 수 있다. 데이터를 담고 있는 변수를 private로 선언해서 외부의 직접 접근을 막고, set, get 메소드를 통해서 간접접근을 할 수 있도록 한다. 변경 → Setter Method조회 → Getter Methodprivate int stock;public void Setstock(int s) {stock = s;}private int stock;public int Getstock() {return stock;} * Inst.. 더보기
Java Programming - 생성자, Overloading, 접근제한자 생성자 - 객체가 생성되고 소멸되기까지의 과정에서 생성될 때 한번 실행되는 동작(new와 함께 온다)① [제한자]이름(매개변수) { }② 생성자를 만들지 않으면 default 생성자가 만들어진다(컴파일러에 의해) ex) public Bank() { }③ Instance variable을 초기화하기 위해서 생성(초기값을 할당) Overloading - 생성자 Overloading, 메소드 Overloading : 매개변수가 다르다면 같은 이름의 메소드 / 생성자를 한 class안에 여러 개 만들 수 있다.① 생성자 Overloading : 생성자는 클래스와 같기 때문에 인수가 다르다면 생성자를 여러 개 만들 수 있다.② 메소드 Overloading : 메소드의 매개변수가 다르면 같은 이름의 메소드라 할지라.. 더보기
Java Programming - 자바의 기초 변수(Variable) : 값을 저장하는 저장소 ① 선언 → 저장소를 만드는 작업(변수 식별자) ex) int age; [modifier]Datatype 변수식별자② 값을 변수에 대입(할당) → 식별자 = 값(value) ex) age = 30; - 선언 + 대입 ex) int age = 3; - 같은 type의 변수 동시에 선언 ex) int age, stuid, grade; int age=30, stuid, grade;③ 변수에는 반드시 값이 있어야한다. 만약 그렇지 않다면, 사용할 수 없다. Class의 구현 - Attribute(속성) → instance variable- Behavior(동작) → Constructor(생성자) : 객체가 생성되는 시점에 한번 실행되는 동작 → Method(메소드.. 더보기