[객체(10)] 오버라이딩(Overriding), 오버로딩(Overloading)
·
Dev/Java
📍 오버라이딩(Overriding) : 자식 클래스가 상속 받은 부모 메소드를 재작성 하는 것 : 부모가 제공하는 기능을 후손이 일부 고쳐 사용하겠다는 의미로 자식 객체를 통한 실행 시 후손의 것이 우선권을 가짐 🧸 특징 : 메소드 헤드라인 위에 반드시 Annotation, @Override 표시 : 접근 제어자를 부모 것보다 같거나 넓은 범위로 변경 가능 : 부모 메소드의 예외 처리 클래스 처리 범위보다 좁은 범위로 예외처리 클래스 수정 가능 🧸 성립 조건 : 부모 클래스의 메소드와 자식 클래스의 메소드 비교 - 메소드 이름 동일 - 매개변수의 개수, 타입, 순서 동일 - 리턴 타입 동일 🧸 주의 사항 : private 메소드 오버라이딩 불가 💫 오버라이딩 실습 package com.kh.p2.over..
[객체(9)] 실습1, 실습2
·
Dev/Java
💫 실습1 package com.kh.prac1.controller; public class StrCon { public void strMethod() { String str1 = "무궁화 꽃이 피었습니다.";//리터럴 String str2 = new String("무궁화 꽃이 피었습니다.");//new연산자 String str3 = new String("동해물과 백두산이");//new연산자 System.out.println("======hashCode 비교======"); System.out.println("str1 : " + str1.hashCode()); System.out.println("str2 : " + str2.hashCode()); System.out.println("str3 : " + s..
[객체(8)] 상속(Inherit) / super()와 super. / is a / has a
·
Dev/Java
📍 상속 : 다른 클래스가 가지고 있는 멤버(필드, 메소드)들을 새로 작성할 클래스에서 직접 만들지 않고 상속을 받음으로써 새 클래스가 자신의 멤버처럼 사용할 수 있는 기능 📍상속의 목적 : 클래스의 재사용, 연관된 일련의 클래스들에 대한 공통적인 규약 정의 📍 상속의 장점 1. 보다 적은 양의 코드로 새로운 클래스 작성 가능 2. 코드를 공통적으로 관리하기 때문에 코드의 추가 및 변경 용이 3. 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여 📍 상속의 특징 ◼ 모든 클래스는 Object 클래스의 후손이다. : Object 클래스가 제공하는 메소드를 오버라이딩하여 메소드 재구현 가능 ex) java.lang.String 클래스의 equals()와 toString() ◼ 부모클래스의 생성..
[객체(7)] 객체 배열
·
Dev/Java
객체 배열
[객체(6)] 메소드(Method)
·
Dev/Java
📍 메소드란? : 수학의 함수와 비슷하며 호출을 통해 사용, 전달 값이 없는 상태로 호출을 하거나 어떤 값을 전달하여 호출을 하며, 함수 내에 작성된 연산 수행한다. 수행 후 반환 값/ 결과 값은 있거나 없을 수 있다. package kh.oop1.day04.exam; public class MethodExam { //1. 매개변수가 없고, 리턴값도 없을 때 //[접근제한자] [예약어] void 메소드명() {} public void method() { System.out.println("매개변수가 없고, 리턴값도 없을 때"); } /*2. 매개변수가 있고, 리턴값이 없을 때 *[접근제한자] [예약어] void 메소드명(매개변수) { } *매개변수의 값의 타입은 기본자료형, 배열, 클래스, 가변인자 *매..
[객체(5)] 생성자(Constructor)
·
Dev/Java
📍 생성자란? : 객체가 new연산자를 통해 Heap메모리 영역에 할당될 때 객체 안에서 만들어지는 필드 초기화 : 생성자는 일종의 메소드로 전달된 초기값을 받아서 객체의 필드에 기록 🔹 생성자 규칙 : 생성자의 선언은 메소드 선언과 유사하나 반환 값이 없으며 : 생성자명을 클래스명과 똑같이 지정해주어야함 📍 기본 생성자 : 작성하지 않은 경우, 클래스 사용 시 JVM이 자동으로 기본 생성자 생성 📍 매개변수 생성자 : 객체 생성 시 전달 받은 값으로 객체를 초기화 하기 위해 사용 : 매개 변수 생성자 작성 시 JVM이 기본 생성자를 자동으로 생성해주지 않음 : 상속에서 사용 시 반드시 기본 생성자를 작성 : 오버로딩을 이용하여 작성 💻 오버로딩이란? : 한 클래스 내에 동일한 이름의 메소드를 여러개 작..
[객체(4)] 필드(Field)
·
Dev/Java
package kh.oop1.day03.exam; public class FieldExam { //[접근제한자] [예약어] 자료형 변수명 [=초기값]; //클래스 변수(모든 객체가 공통적으로 속성을 가질 때 //사용을 하고 생성할 때 메모리 영역에 같이 생성되기 때문에 //꼭 필요한 공통적인 속성을 가진 변수에 사용해야한다. public static int var1; //멤버변수(인스턴스변수) //각각의 객체(인스턴스)마다 개별적인 속성을 가져야할때 //멤버변수(인스턴스변수)를 사용하게 된다. public int var2; private int var3; // 캡슐화 원칙으로 private사용 int var4; //접근제한자 생략 시 default 접근제한자 //생성자 public FieldExam() ..
[객체(3)] package와 import
·
Dev/Java
📍 자바에서 package란? : 비슷한 성격의 자바 클래스들을 모아놓은 묶음 : 패키지는 서브패키지를 가질 수 있고, ' . ' 으로 구분 ex) Scanner 클래스의 full name은 패키지명이 포함된 java.util.Scanner 이다. 🔹 패키지의 선언 : 소스파일 첫번째 문장에 단 한 번 선언한다. : 하나의 소스파일에 둘 이상의 클래스가 포함된 경우, 모두 같은 패키지에 속한다. : 모든 클래스는 하나의 패키지에 속하며, 패키지가 선언되지 않은 클래스는 자동적으로 이름없는 패키지(default) 에 속하게 된다. 📍 import란? : 사용할 클래스가 속한 패키지를 지정하는데 사용한다. : import문을 사용하면 클래스를 사용할 때 패키지 명 생략 가능 : java.lang 패키지의 클..