전체 글

· java
final final의 의미는 최종적이랑 뜻을 가지고 있다. final 키워드는 클래스, 필드, 메소드 선언 시에 사용할 수 있다. 해당 선언이 최종상태이고, 수정 될 수 없다. final 타입 필드 [=초기값]; final 변수: 값 변경하지 못한다. int a = 10; final int b = 10; a++; b++; //컴파일 오류 final 메서드 final 메서드는 오버라이딩 할 수 없다. 메서드를 선언할 떄 final 키워드를 붙이게 되면 이 메서드는 최종적인 메서드이므로 오버라이딩을 할 수 없는 메서드가 된다. 즉 부모 클래스를 상속해서 자식 클래스를 선언 할 때 부모 클래스에서 선언된 final 메서드는 자식 클래스에서 재정의 할 수 없다. public class Car { //필드 pu..
· java
타입변환 다형성을 위해 자바는 부모 클래스(상위)로 타입 변환을 허용한다. 즉 부모 타입에 모든 자식객체가 대입될 수 있다. 이것을 이용하면 객체는 부품화가 가능하다. 강제 타입 변환(Casting) 강제 타입변환(Casting)은 부모타입을 자식 타입으로 변환하는 것을 말한다. 그렇다고 해서 모든 부모타입을 자식클래스 타입으로 강제 변환할 수 있는 것은 아니다. 자식 타입이 부모타입으로 자동 변환한 후 , 다시 자식 타입으로 변환할 떄 강제 타입변환을 사용할 수 있다. Parent parent = new Child(); parent.field1 = "XX"; parent.method1(); parent.method2(); parent.field2 = "yy"; //컴파일에러 parent.method3(..
· java
다형성은 같은 타입이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질을 말한다. 하나의 타입에 여러 객체를 대입함으로써 다양한 기능을 이용할 수 있도록 해준다. 객체지향에서 다형성의 개념이 적용된 두 가지 형태인 오버로딩과 오버라이딩이다. 오버로딩은 메서드 중복정의, 오버라이딩은 메서드 재정의를 뜻한다. Overriding(재정의) 부모쪽에서 사용한 것을 자식클래스에서 오버라이딩을 하였다. 8. shpae 타입 객체가 S변수에 전달이 되고 Shape 클래스의 makeArea() 메서드가 호출된다. 9. Circle 타입의 매개변수가 전달되면 upcasting이 이루어진다. S변수에 전달이 되며 자료형은 Shape이기떄문에 Shape영역만 참조할수있다. 그럼에도 불구하고 Shape안에 있는 makeAr..
· git
깃(Git)프로젝트에 담겨있는 데이터들은 파일 시스템 상에서의 스냅샷(Snapshot)이라고 볼 수 있습니다. 실제로 프로젝트를 커밋(commit)하여 적용할 떄의 순간을 중요시한다는 특징이 있습니다. 파일 자체를 저장하기보다 수정내역자체를 저장합니다. Git 동작원리 세 가지 구성요소 - Working Directory : 작업할 파일이 있는 디렉토리입니다. - Staging Area: 커밋(Commit)을 수행할 파일들이 올라가는 영역입니다. - Git Directory : Git 프로젝트의 메타 데이터와 테이터 정보가 저장되는 디렉토리 입니다. Git 의 기본적인 동작 과정 특정한 파일을 추가, 수정등의 작업을 Working Directory 하게되면 Staging Area 올리기 위해 add를 합..
· git
깃(git) 을 이용하면 하나의 프로젝트를 여러 사람들과 함께 효과적으로 관리하여 협업할 수 있습니다. 동시에 프로젝트를 진행할 때 소스코드를 여러명이 동시에 보면서, 수정하며 개발해야하는데 이러한 작업은 협업관리도구가 없으면 쉽지 않습니다. 깃(Git)은 여러명이 병렬적으로 개발을 할 수 있게 해준다는 점에서 프로젝트 개발 속도를 매우 빠르게 해줍니다. 실제로 리눅스를 포함해서 다양한 오픈소스 프로젝트들은 수천명이 넘는 개발자가 포함되어 있는데. 이들의 작업 내역을 보았을 때 효과적으로 관리를 할 수 있는 점을 볼 수 있습니다. SVN 은 각 컴퓨터가 중앙 서버처럼 사용하는 컴퓨터로부터 파일을 다운로드 받아 이용하는 방식입니다. 깃(Git)은 중앙서버의 개념이 없으며 서버가 망가졌을 때 다른 컴퓨터로부..
· java
Parent 클래스를 상속받아 Child 클래스를 작성하였습니다. ChildExample 클래스를 실행 했을 때 호출되는 각 클래스의 생성자의 순서를 나타내보겠습니다. ChildExample package exInhalitance; public class ChildExample { public static void main(String[] args) { Child child = new Child(); } } 1. Child 객체를 생성하고 child 변수에 대입 2. 매개변수가 없는 Child() 메서드로 이동 3. this 생성자 - 현재 객체가 갖는 다른 생성자를 호출. 첫줄에만 사용이 가능 4. 다른 생성자가 호출되기 때문에 this.name 이 있는 Child(String name)으로 이동 생성..
· java
부모 생성자 호출 메모리에서 보면 부모생성자가 먼저 호출이 된다. 부모의 특정 생성자를 호출하고 싶을 때 매개값의 타임과 일치하는 부모 생성자를 호출한다. 기본 생성자 호출방식 자식클래스(매개변수선언, ``) { Super(매개값, ``); } super 현재 사용중인 객체의 부모영역을 호출할 때 사용한다. this. 현재 사용중인 객체를 말하는데 그것이 부모 영역일때 super가 된다. public class Student extends People{ public int studentNo; public Student(String name, String ssn, int studentNo){ super(name,ssn); //1. new people(name,ssn); //2. super(name,ssn)..
· java
상속 현실에서 상속은 부모가 자식에게 물려주는 행위를 말한다. 자식은 상속을 통해서 부모가 물려준 것을 자연스럽게 이용할 수 있다. 객체 지향 프로그램에서도 부모 클래스의 멤버를 자식 클래스에게 물려줄 수 있다. 프로그램에서는 부모클래스를 상위클래스라고 부르기도하고, 자식 클래스를 하위클래스라고 부른다. 상속은 이미 잘 개발된 클래스를 재사용해서 새로운 클래스를 만들기 때문에 코드의 중복을 줄여준다. 자기만의 고유한 필드, 메서드하고 상위클래스에서 물려받는 것이 존재한다. 상속을 해도 부모클래스의 모든 필드와 메소드들을 물려받는 것은 아니다. 부모 클래스에서 private 접근제한을 갖는 필드와 메서드는 상속 대상에서 제외된다. 그리고 부모 클래스와 자식 클래스가 다른 패키지가 존재한다면 default ..
· java
싱글톤 하나만 생성된다고 해서 싱클톤이라고 한다. 싱글톤을 만들려면 클래스 외부에서 new 연산자로 생성자를 호출할 수 없도록 막아야 한다. 생성자를 호출한 만큼 객체가 생성되기 때문이다. 생성자를 외부에서 호출할 수 없도록 하려면 private 접근제한자를 붙여주면 된다. private - 클래스 내부에서만 사용이 가능하다. static - 내부에서 instance 변수, this 사용이 불가능하며 static변수만 사용가능하다. static는 클래스 로드될때 classArea에 초기화 된다. package exOop; class A { int i; private static A a1 = new A(); private A() { i = 1; } public static A getInstance() { ..
· java
캡슐화란 객체의 필드,메서드를 하나로 묶고, 실제구현내용을 감추는 것을 말한다. 외부 객체는 객체내부의 구조를 알지 못하며 객체가 노출해서 제공하는 필드와 메서드만 이용할 수 있다. 은닉된 정보 + 정보의 접근 통로를 메서드로 만듬 = 캡슐화이다. 접근제어자를 통한 데이터 보안이다. 캡슐화를 위해서는 테이터와 기능을 하나라 묶기때문에 데이터(정보)를 은닉할 수 있어야한다. 정보를 은닉하기 위한 방법은 public, private 등의 접근제어자를 사용한다. 접근제어자 private 외부에 노출되면 안되는 정보들을 정보은닉시키고 그것을 도와주는 접근제어자이다. 자신의 클래스에서 접근가능(다른클래스 접근불가) public 클래스가 public 접근제한을 가지게 되면 같은 패키지뿐만 아니라 다른 패키지에서도 ..
-JUNHEOK-
개발일지