본문 바로가기

Java

(10)
자바 : 상속 📗 상속 ✅ 객체 지향의 상속 객체 지향에서의 상속이란 부모 클래스에서 만들어진 필드, 메소드를 자식 클래스가 물려 받는 것을 말한다. 상속을 통하여 간결하게 자식 클래스를 만들 수 있고 이는 곧 소프트웨어 생산성을 향상 시킨다. ✅ 상속의 장점 - 클래스의 간결화 멤버의 중복 작성이 불필요 - 클래스 관리 용이 클래스들의 계층적 분류 - 소프트웨어의 생산성 향상 클래스의 재사용 용이 새로운 클래스 작성이 빨라짐 ✅ 자바의 상속 public class Person{ .... } // 상속 선언은 extends public class Student extends Person{ // Person을 상속받는 Student .... } public class StudentWorker extends Student..
자바 : static, final 📗 static 멤버와 non-static 멤버 ✅ static static 은 전역 변수나 전역 함수를 만들 때, 그리고 클래스의 여러 객체들이 공유하도록 공유 멤버를 작성할 때 활용한다. ✅ non - static 멤버 class Sample{ int n; void start(); } ✅ static 멤버 class Sample{ static int n; static void start(); } non-static 멤버 static 멤버 공간적 특성 멤버는 객체마다 별도로 존재 -> 인스턴스 멤버라고도 부름 멤버는 클래스당 하나 생성 멤버는 객체 내부가 아닌 별도의 공간(클래스 코드가 적재되는 공간)에 생성 -> 클래스 멤버라고 부름 시간적 특성 객체 생성 시에 멤버가 생성됨 객체가 생성한 후 멤버를..
자바 : 객체 배열과 메소드 📗 객체 배열 객체 배열 생성 및 사용 Class Circle{ 변수와 메소드 들... } Circle [] c; // Circle 배열에 대한 레퍼런스 변수 c 선언 c = new Circle[5]; // 레퍼런스 배열 생성 for(int i = 0; i 누구도 사용할 수 없게 된 메모리 Person a, b; a = new Person("손흥민"); b = new Person("페이커"); // b = a로 b를 가리키는 레퍼런스가 하나도 없게 됨 b = a; // b가 가리키던 객체는 '가비지'가 됨 ✅가비지 컬렉션 JVM의 가비지 컬렉터가 자동으로 가비지 수집, 반환 -> 가용 메모리로 반환 가비지 컬렉션 스레드에 의해 수행 - 개발자에 의한 강제 가비지 컬렉션 System.gc(); // 가비지..
자바 : 생성자 📗 생성자 생성자는 객체가 생성될 때 초기화를 위해 실행하는 메소드를 말한다. ✅ 생성자의 특징 - 생성자는 메소드이다. - 생성자 이름은 클래스 이름과 반드시 동일해야 한다. - 생성자는 매개 변수 개수를 달리하여 같은 이름으로 여러개 작성 가능하다. (오버로딩) - 생성자는 new 를 통해 객체를 생성할 때 객체 당 한번 호출 된다. - 생성자의 목적은 객체를 초기화 함에 있다. - 객체가 생성될 때 반드시 호출되기 때문에 따라서 하나 이상 선언되어야 한다. 만약 개발자가 생성자를 작성하지 않으면 컴파일러가 자동으로 기본 생성자를 삽입해준다. 📗 기본 생성자 기본 생성자는 매개 변수가 없고 아무 작업 없이 단순 리턴하는 생성자이다. 디폴트 생성자 라고도 한다. 기본 생성자가 없어도 컴파일 오류가 나지..
자바 : 클래스와 객체 📗 객체 지향 프로그래밍 객체 지향 프로그래밍에서는 모든 데이터를 객체 취급 하며 이러한 객체가 프로그래밍의 중심이 된다. 객체란 우리가 인식할 수 있는 사물이라고 설명할 수 있다. 이런 객체의 속성과 행동을 구체화하는 형태의 프로그래밍을 객체 지향 프로그래밍이라고 한다. ✅ 객체 지향의 특성 - 캡슐화 : 객체를 캡슐로 싸서 내부를 볼 수 없게 하는 것 외부의 접근으로 부터 객체를 보호한다. 자바는 클래스를 이용해 캡슐화를 시도한다. 메소드와 필드는 모두 클래스 내 구현한다. - 상속 : 상위 개체의 속성을 하위 개체가 모두 가지는 것을 말함 자식 클래스가 부모 클래스의 속성을 물려 받고 기능을 확장하는 것 - 다형성 : 같은 이름의 메소드가 클래스나 객체에 따라 다르게 동작하도록 구현 메소드 오버로딩..
자바 : 배열과 예외 처리 📗 배열 (1차원) 배열이란 인덱스와 인덱스에 대응하는 데이터들로 이루어진 구조를 말한다. 같은 타입의 데이터들이 순차적으로 저장되어있다. ✅ 1차원 배열의 생성 단계 자바에선 배열, 클래스, 인터페이스를 생성할 땐 "new" 를 이용해서 동적 생성해야 한다. 1. 배열 선언 단계 int 배열에 대한 레퍼런스 변수를 생성한다. int [] arr; 2. 배열 생성 단계 배열을 생성하고 생성된 배열 주소를 레퍼런스에 넣는다. arr = new[5]; 배열 선언과 함께 초기화도 가능하다. int [] arr = {0, 1, 2, 3, 4}; 📗 레퍼런스 치환과 배열 공유 하나의 배열은 다수의 레퍼런스가 참조 가능하다. 하나의 배열을 다수의 레퍼런스가 참조할 때, 배열 내 값이 다른 레퍼런스가 수행한 명령에 ..
자바 : 자바의 데이터 타입 📗 기본형 타입 기본형 타입은 총 8가지가 존재한다. 기본형 타입은 기본값이 존재하기에 Null 값이 존재하지 않는다. 따라서 Null 값을 이용하고 싶다면 래퍼 (Wrapper) 클래스를 이용해야한다. 분류 저장 가능한 값의 범위 크기 boolean true, false 1byte char 0 ~ 65,535 2byte byte -128 ~ 127 1byte short -32,768 ~ 32,767 2byte int -2,147,483,648 ~ 2,147,483,647 4byte long -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 8byte float (3.4 X 10-38) ~ (3.4 X 1038) 의 근사값 4byte double (1.7 ..
자바 : 자바의 태동 📗 JAVA의 시작 자바는 1991년, 가전기기 어플리케이션 제작 프로젝트인 그린 프로젝트에 의해 초안이 제안되었다. 자바 이전에 사용하던 언어(예. C, C++)들은 플랫폼간 호환성이 없는 언어였고 복잡하며 실행파일이 메모리에 올려져야 실행되어 메모리 관리가 어려웠다. 하지만 가전제품은 적은 메모리를 사용했고 여러 플랫폼들이 있기 때문에 플랫폼 독립적이며 메모리 사용량이 적고 호환성이 좋은 언어가 필요했다. ✔ 자바는 어떻게 호환성 문제를 해결했을까? C나 C++는 플랫폼 종속적이었기 때문에 각각의 플랫폼 마다 컴파일을 해줘야 했다. 하지만 자바는 바이트코드와 JVM (Java Virtual Machine)을 이용하여 플랫폼 종속성 문제를 극복했다. ✔ 바이트코드와 JVM (자바 가상 머신) 이란? 자..

반응형