[Java] 다형성, 추상 클래스, 인터페이스, OCP원칙
·
Language/Java
✅ 다형성🔹 다형성이란?자바에서 다형성은 객체 지향 프로그래밍의 대표적인 특징 중인 캡슐화, 상속, 다형성 중 하나이다.다형성(Polymorphism)은 "다양한 형태", "여러 형태"를 뜻한다.한 객체가 여러 타입의 객체로 취급될 수 있는 능력을 말하는 것이다. 다형적 참조부모 타입의 변수가 자식 인스턴스를 참조하는 것을 다형적 참조라고 한다.⭐ 부모는 자식을 담을 수 있다❗ 부모 타입은 자식 타입을 담을 수 있지만 반대는 컴파일 오류가 발생한다.Parent parent = new Parent(); Child child = new Child(); Parent poly = new Child();Parent poly = new Grandson(); 👈 Child 하위에 손자가 있을 경우 가능. 그러나 ..
[Java] 상속
·
Language/Java
✅ 상속🔹 상속이란?상속은 객체 지향 프로그래밍의 핵심 요소 중 하나로, 기존 클래스의 필드와 메서드를 새로운 클래스에서 재사용하게 해준다.기존 클래스의 속성과 기능을 그대로 물려받는다.extends키워드를 사용해 대상은 하나만 선택할 수 있다.부모 클래스 (슈퍼 클래스) : 상속을 통해 자신의 필드와 메서드를 다른 클래스에 제공하는 클래스자식 클래스 (서브 클래스) : 부모 클래스로부터 필드와 메서드를 상속받는 클래스자바는 다중 상속을 지원하지 않는다.따라서 extends대상은 하나만 선택할 수 있다.부모가 또 다른 부모를 하나 가지는 것은 가능하다. 다중 상속 시 하나의 자식이 두 부모를 상속받을 때 두 부모에 move()라는 이름이 같은 메서드가 있다면자식은 어떤 부모의 move()메서드를 호출할..
[Java] 패키지, 접근 제어자, 자바 메모리 구조, static, final
·
Language/Java
✅ 패키지 (package)프로그램이 커지면서 많은 클래스들을 분류해서 관리하고 싶을 때 패키지를 만들어 관리한다.패키지를 만들고 해당 패키지 안에 관련된 자바 클래스들을 넣으면 된다.일종의 컴퓨터의 폴더, 디렉토리 개념으로 보면 된다. package는 패키지명으로는 사용할 수 없다.패키지를 사용하는 경우에는 코드 첫줄에 package [패키지명];을 적어주어야 한다. 다른 패키지의 클래스를 사용하는 경우사용자와 같은 위치 : 패키지 경로를 생략해도 가능하다.사용자와 다른 위치 : 패키지 전체 경로를 포함해서 클래스에 적어주어야한다. 🔹 import패키지가 다른 경우에 항상 전체 경로를 적어주는 것은 불편하다.이때 import를 사용하여 다른 패키지 전부를 가져오거나, 일부만 가져올 수 있다.impor..
[Java] 클래스, 생성자, OOP
·
Language/Java
✅ 클래스 (Class)🔹클래스가 필요한 이유자바는 클래스와 객체로 이루어져 있다.예를 들어 여러 학생들의 정보를 관리하는데 배열을 선언해서 각 학생마다 정보를 관리하기에는 많은 불편함이 있다.배열 중간 인덱스의 학생의 정보를 제거하려면 각 정보 배열마다 해당 인덱스를 제거하는 불편함이 생긴다.이에 학생이라는 클래스를 만들어 개념을 만들고 관리할 이름, 나이, 성적 등 정보를 변수를 가지도록 하여 학생별로 인스턴스를 만들어 관리하는 것이 훨씬 편리하다. 🔹 구성멤버변수 (Member Variable) : 클래스에 소속된 변수로 필드라고도 한다.생성자 : 클래스를 생성할 때 호출되는 메서드이다.클래스 메서드 : 클래스가 가지고 있는 기능들이다.클래스는 하나의 타입으로 설계도이다.객체 또는 인스턴스는 ..
[Java] 스코프, Scanner, 배열, 메서드
·
Language/Java
✅ 스코프 (Scope)🔹존재 이유1. 효율적인 메모리 사용조건문이나 반복문 코드 블럭 안의 지역변수가 있다면 블록의 종료 시점에 이 변수를 메모리에서 제거해서 더 효율적으로 메모리를 사용하고 유지보수하기 좋은 코드를 만들 수 있다. 2. 코드의 복잡성을 감소실무에서 코드는 매우 복잡한 경우가 많기 때문에 단순한 코드를 지향하는 것이 좋다. 따라서 사용을 다한 필요없는 변수가 있다면 메모리에서 제거해서 줄인다면 생각해야할 변수가 간단해진다. 좋은 프로그램은 무한한 자유가 있는 프로그램이 아니라 적절한 제약이 있는 프로그램이다. 🔹형변환(Casting, 캐스팅)1. 자동 형변환 (묵시적 형변환)작은 범위에서 큰 범위로 값을 당연히 넣을 수 있다.ex) int long double큰 범위에서 작은 범위는..
[Java] 변수, 연산자, 조건문, 반복문
·
Language/Java
✅ 변수1. 실무에서 자주 사용하는 타입byte : 파일을 바이트 단위로 다루기 때문에 파일 전송, 파일 복사 등에 주로 사용int, long : 자바는 정수에 기본으로 int를 사용한다. 20억이 넘을 것 같으면 long을 사용하면 된다. (0이 9개)double : 실수는 고민하지 말고 double을 사용한다.boolean : true, false로 참 거짓을 표현한다. 조건문에서 자주 사용한다.String : 문자를 다를 때는 문자 하나든 문자열이든 모두 String을 사용하는 것이 편리하다. 2. 실무에서 자주 사용하지 않는 타입short, float, char ✅ 변수 명명 규칙🔹 규칙1. 변수 이름은 숫자로 시작할 수 없다. (숫자를 이후에 포함하는 것은 가능하다.)ex) 1num, 202..
[Java] 자바, 표준 스펙, 컴파일, IDE
·
Language/Java
✅ 자바란?자바(Java) 언어는 1991년 6월 Sun Microsystems에 재직 중이던 제임스 고슬링(James Gosling)이 만들었다. 초기 이름은 Oak였으나 1996년에 1.02 버전에서 Java로 변경되었다. 원래 목표는 가전제품이나 소형기기에 탑재될 임베디드 소프트웨어를 만들기 위한 것이었다. 당시 C, C++등 대부분의 언어가 특정 플랫폼(또는 OS)이나 하드웨어에 맞게 컴파일 되도록 설계되어 비용은 비싸고 개발에 시간이 많이 소요되는 문제가 있었다. 이에 자바는 다양한 환경에서 실행 가능한 이식성이 뛰어난 Cross Platform 언어로 개발되어 Write Once, Run Anywhere(WORA) 철학을 완성시켰다. 개발자는 JRE(Java Runtime Environment..