본문 바로가기

Language

[JAVA]Overriding(덮어쓰기) 1. 정의 부모 클래스의 매소드를 자식 클래스가 재정의 하는 것 따라서 자식클래스에서 해당 매소드를 호출 할 경우, 부모 클래스의 본 매소드가 아닌 새로 정의된 자식 클래스의 메소드가 호출 됨. **Method Overloading 과 다른점 오버로딩은 파라미터의 자료형, 파라미터의 갯수가 다를 경우에만 재정의 할 수 있다. 오버로딩은 계층이 나눠져 있지 않다. 오버라이딩은 부모-자식이라는 계층이 나눠져 있을 때만 가능하다. 오버라이딩은 부모 클래스의 매소드를 재정의 하는 것이므로, 재정의한 매소드의 이름, 매개변수, 리턴 값이 부모 클래스의 매소드와 일치 해야한다! 2. 코드 예시 //부모 클래스 public class Camera { public String name; // 오버라이딩할 매소드 pub.. 더보기
Chap07_09 상속(inheritance) 1. 정의 자식 클래스가 부모 클래스의 모든 것들을 가져오는 것. *쓰는 이유 클래스마다 중복되는 내용이 있는데 같은 내용을 항상 똑같이 쓴다면 중복성이 심해져서 효율성이 저하된다. 따라서 부모 클래스에 이미 있는 내용은 상속을 선언한 자식 클래스에서 선언 안 하더라도 쓸 수 있게 조치한 것 이다. 2. 사용법 //부모 class public class Camera { public String name; // 부모 클래스 public Camera() { this.name = "카메라"; } public void takePicture() { // 사진 촬영 System.out.println(this.name + ": 사진을 촬영합니다."); } public void recordVideo() { // 동영상.. 더보기
Chap07_08 Package 의미 알기 (예시로 Random 이용) 1.Package란? 관련 있는 클래스를 한데 모아놓는 것. 폴더와 비슷한 개념 만약 Chap_07에 묶여있는 클래스들 이라면 최상단에 해당 명령어 필요 (intellj에서는 자동으로 채워짐.) package Chap_07; 2.Random 클래스 이용 (1) Random 클래스가 있는 패키지 불러오는 법 random 클래스는 java 패키지 안의 util 이라는 패키지 속에 있다. 해당 클래스를 사용하려면 다음과 같이 main 매소드에서 사용 전에 import를 해야한다. import java.util.Random; (2) Random 클래스를 이용한 계산 // (랜덤 클래스를 사용) // 랜덤 클래스 동적 할당 Random random = new Random(); System.out.println(".. 더보기
Chap07_07 접근 제어자 1. 정의 우리가 네이버 카페를 운영한다 치면, 방문자가 볼 수 있는 게시물, 새싹 회원이 볼 수 있는 게시물, 높은 등급의 회원이 볼 수 있는 게시물을 다 다르게 구분할 수 있다. 이것과 같은 원리로 접근제어자는, 클래스나 클래스의 구성요소(변수, 매소드)에 접근할 수 있는 권한을 누구까지 줄 것인지 정하는 Keyword 이다. 2. 종류 (1) private 해당 클래스 내에서만 접근 가능하게 하는 KEYWORD private int price; (2) public 모든 패키지, 모든 클래스에서 접근 가능하도록 허용하는 KEYWORD (**public class 정의 시 클래스명과 자바 파일명은 같아야 한다.) public String modelName; (3) default (클래스나 변수,매소드 .. 더보기
Chap07_06 Setter & Getter 1.역할 Getter : 객체의 인스턴스 변수를 조회하는 매소드 //인스턴스 변수 price의 값을 보여주는 매소드 int getPrice() { return price; } Setter : 객체의 인스턴스 변수를 초기화 하는 매소드 // 인수로 들어온 값을 resolution의 값으로 넣는 매소드 void setResolution (String resolution){ this.resolution = resolution; } 2. 생성자를 사용하거나 일일히 초기화 할 수 있는데 왜 쓰일까? 객체의 무결성을 보장하기 위해 쓰인다. **무결성이란 데이터의 정확성과 일관성을 유지하고 보증하는 것을 말한다. 만약 변수를 일일히 초기화 하거나, 생성자를 이용해 초기화 하는 경우, 변수에 존재할 수 없는 값이 들어.. 더보기
Chap07_05 Constructor 와 this 1. Constructor(생성자) 정의 객체를 선언할 때마다 인스턴스 변수를 일일히 초기화 해야한다면, 너무 번거롭다. 생성자는 객체 선언과 동시에 인스턴스 변수를 자동 초기화 시켜주는 역할을 한다. //기존의 방식 : 객체 선언, 인스턴스 변수 일일히 초기화 BlackBox b1 = new BlackBox(); b1.modelName = "까망이"; b1.resolution = "FHD"; b1.price = 20000; b1.color = "블랙"; //생성자 사용 : 객체 선언과 동시에 초기화 //객체b1을 BlackBox 자료형으로 선언, 동적할당, ()안은 생성자에 들어갈 인수 BlackBox b1 = new BlackBox("까망이", "FHD", 200000, "Black"); 이렇게 편리.. 더보기
Chap07_04 Method 와 Method overloading 1. 정의 클래스의 기능을 표현한 것. 해당 클래스를 사용한 객체는 모두 사용할 수 있다. 해당 매소드를 재정의 해서 사용도 가능하다. 2. 선언 일반 매소드랑 똑같음. 선언되는 위치가 클래스 안쪽 일 뿐이다. public class BlackBox{ // 입력 반환 모두 없는 매소드 > 호출만 하면 됨. void autoReport() { if (canAutoReport) { System.out.println("충돌이 감지되어 자동으로 신고합니다."); } else { System.out.println("자동 신고 기능이 지원되지 않습니다."); } } //입력은 필요하나 반환은 없는 매소드 void insertMemoryCard(int capacity) { System.out.println("메모리 .. 더보기
Chap07_03 Class Variable(클래스 변수) 1.정의 클래스 내에 기재되어 모든 객체에 똑같이 적용되는 변수 객체에서 임의로 변경 불가능 public class BlackBox { // 인스턴스 변수 -> 각 객체마다 다르게 적용 String modelName; // 모델명 String resolution; // 해상도 int price; // 가격 String color; // 색상 int serialNumber; // 시리얼 번호 //클래스 변수 -> 모든 객체에 똑같이 적용 //자동 신고 기능 static boolean canAutoReport = false; } 2.초기화 클래스 내에서 선언과 동시에 초기화. (객체에서 바꾸려 하면 에러) 3. 접근 클래스에서 바로 접근 가능. (클래스이름.클래스 변수) 객체마다 임의로 값을 변경하는 것은 .. 더보기