Java 객체 지향 프로그래밍 - 1
📘 Backend/Java2023. 4. 1. 10:41Java 객체 지향 프로그래밍 - 1

📘 상속 (extends 키워드) 기존의 클래스를 재활용하여 새로운 클래스를 작성하는 자바의 문법 요소 코드의 중복 제거 상위클래스의 속성인 name,age / 기능인 learn,wlak,eat 를 상속받은 하위클래스들 클래스 상속 예시 class Person { String name; int age; void learn(){ System.out.println("공부를 합니다."); }; void walk(){ System.out.println("걷습니다."); }; void eat(){ System.out.println("밥을 먹습니다."); }; } class Programmer extends Person { // Person 클래스로부터 상속. extends 키워드 사용 String companyN..

Java This & Inner Class
📘 Backend/Java2023. 4. 1. 10:31Java This & Inner Class

📘 This vs This() this 인스턴스 자기 자신을 가리킴 참조변수를 통해 인스턴스의 멤버에 접근하는것처럼 this를통해 인스턴스 자신의 변수에 접근 가능함 인스턴스의 필드명과 지역변수를 구분하기 위한 용도 Car(String model, String color, boolead inConvertible) { this.model = mode; } this() 같은 클래스안에서 메소드끼리 서로 호출이 가능한것처럼, 생성자도 상호호출이 가능하며, 이를 위해 this() 를 사용함 반드시 첫 줄에 정의되어야함 즉, this()는 자신이 속한 클래스에서 다른 생성자를 호출 하는경우에 사용 예를 들면, 클래스명이 Car라면 클래스의 생성자를 호출하는것은 this()이며, 그 효과는 Car()과 같다 thi..

Java Constructor
📘 Backend/Java2023. 3. 31. 15:01Java Constructor

📘 생성자 인스턴스 생성시 호출되는 인스턴스 변수 초기화 메서드 이름은 반드시 클래스의 이름과 동일해야함 생성자 = 메소드 호출되는 시점 = 인스턴스 생성 시 목적 = 인스턴스 변수 초기화 리턴 타입이 아예 없음 (void와는 다른 동작방식) 오버로딩 가능 기본 형식 클래스명(매개변수) { // 생성자 기본 구조 , 매개변수는 있을수도,없을수도 있음 ... } 기본 생성자 vs 매개변수가 있는 생성자 모든 클래스에는 반드시 하나 이상의 생성자가 존재해야함 기본생성자 매개변수가 없는 생성자를 의미한다 ex) 클래스명(){} // 기본생성자 DefaultConst(){} // 예시) DefaultConst 클래스의 기본생성자 매개변수가 있는 생성자 메소드처럼 매개변수 호출 시 해당 값을 받아 인스턴스를 초기..

Java Static
📘 Backend/Java2023. 3. 31. 14:57Java Static

📘 Static 정적 클래스 멤버라고도 하며 인스턴스에 소속된게 아니라 클래스에 고정된 멤버이다. 따라서 클래스 로더가 클래스를 로딩해서 메서드 메모리 영역에 적재할 때 클래스 별로 관리된다. 즉, 클래스의 로딩이 끝나는 즉시 static 멤버의 사용이 가능하다. Garbage Collector의 영향을 받지 않으며 Heap에 속하지 않다. 모든 객체에 메모리를 공유한다. (중요) 보통 Utils 함수를 만드는데 자주 사용 됨 (공통화) 정적 멤버가 아니면 인스턴스를 생성해야지만 호출을 할 수 있다. 프로그램 종료 시 까지 메모리가 할당된 채로 존재하기 때문에 Static을 너무 남발하게 되면 성능상 안좋다. Class Member라고 하며, Class Loader가 Class를 Loading해서 메서드..

Java Class 구조
📘 Backend/Java2023. 3. 31. 14:53Java Class 구조

📘 클래스 객체를 정의하는 틀 또는 설꼐도와 같은 의미 객체의 상태를 나타내는 필드 / 객체의 행동을 나타내는 메소드로 구성됨 하나의 클래스로부터 여러개의 인스턴스 (인스턴스==메모리에 할당된 객체); 생성 가능 클래스의 구성요소 필드 : 클래스의 속성을 나타내는 변수 메소드 : 클래스의 기능을 나타내는 함수 생성자 : 클래스의 객체 생성 이너 클래스 : 클래스 내부의 클래스 클래스 예시 차(Car) 설계도 필드(field) car.modelName = "람보르기니" car.modelYear = 2016 car.color = "주황색" car.maxSpeed = 350 메소드(method) car.accelerate() car.brake() 인스턴스 == 객체(instance) 내 차(myCar) : 설..

Java Array
📘 Backend/Java2023. 3. 31. 14:34Java Array

📘 배열 부득이하게 많은 수의 변수를 할당해야 할 때 ex: 1달동안의 일별 최고 기온 / 강수여부 = 공통점 최고기온:double / 강수여부:boolean 의 값을 가짐 이런 각 값들이 같은 타입을 가지는 경우, 배열을 사용하여 단 하나의 변수만으로 값들을 저장 및 참조가능 즉, 배열이란 동일한 타입의 값들을 하나의 묶음으로 묶은 자료 구조를 의미하며, 묶여진 값들을 배열이라고 함 배열에서의 차원이란? 배열을 사용할때 1,2차원 배열을 흔히 사용하며, 필요에 따라서는 3,4차원 배열도 만들어 사용할 수 있음 '차원'이란 배열이 중첩된 정도를 의미하며, 즉 배열이 중첩되었다 함은 배열의 요소가 또 다른 배열일 경우임 1차원 배열 - 배열의 요소가 배열이 아닌 경우 ex: { 1, 2, 3..

Java 제어문 & 반복문
📘 Backend/Java2023. 3. 31. 13:29Java 제어문 & 반복문

📘 조건문 소괄호 안에는 조건식을 넣어준다. 조건식이 참일때 실행하고자 하는 코드 작성 기본 형식 if (조건식) {} code; // 조건식이 참이면 실행 } if else 문 조건식의 결과에 따라 실행블록 선택 if의 조건식이 true면 해당 블록이 실행되고, false면 else if 조건식 검사하고 false면 else 실행 Switch 문 입력변수의 값과 일치하는 case 입력값(입력값1, 입력값2, ...)이 있다면, 해당 case문에 속한 문장들이 실행된다. case문마다 break 라는 문장이 있는데 해당 case문을 실행 한 뒤 switch문을 빠져나가기 위한 것이다. 만약 break 문이 빠져 있다면 그 다음의 case 문이 실행된다. switch(입력변수) { case 입력값1: ....

image