전체 글
-
[Java] 메소드 오버라이딩(method overriding)프로그래밍/JAVA 2022. 8. 7. 12:56
메소드 오버라이딩은 부모클래스에 이미 정의된 메소드를 자식클래스에서 같은 메소드로 다시 재정의하는 것을 의미한다. 메소드 오버라이딩을 하기위한 몇가지 조건이 있다. 1. 메소드 오버라이딩하고자하는 부모클래스의 메소드와 재정의하고자하는 자식클래스의 메소드 명, 시그니처는 반드시 같아야한다. 2. 부모 클래스의 메소드보다 접근 제어자를 더 좁은 볌위로 변경할 수 없다. 3. 부모 클래스의 메소드보다 더 큰 범위의 예외를 선언할 수 없다. class Parent { void display() { System.out.println("부모 클래스의 display() 메소드입니다."); } } class Child extends Parent { void display() { System.out.println("자식..
-
[Java] 상속(inheritance)프로그래밍/JAVA 2022. 8. 7. 12:35
상속(inheritance)은 특정 클래스를 구성할 때 기존 클래스의 데이터와 메소드를 부모 클래스에서 그대로 물려받는 것을 의미한다. 또한, 하나의 변수 타입으로 여러 종류의 객체를 의미하는 추상화된 방식의 프로그램을 가능하게 해준다. 상속의 장점으로는 부모클래스에서 작성한 코드를 자식클래스에서 사용하고싶을 때 코드를 작성하지않고 사용이 가능하다. 이로써 클래스 재활용이 가능해진다. 자식클래스는 부모클래스의 모든 특성을 물려받아 새롭게 작성된 클래스를 의미하며 부모클래스에 선언된 필드와 메소드를 자유롭게 사용 가능하지만 생성자는 상속되지않아 사용에 제한된다. 자식 클래스 선언 아래와 같이 extends 부모클래스명을 추가하면 부모클래스에 상속을 받는 자식클래스를 생성할 수 있다. 접근제어자 class ..
-
[Java] Object 클래스프로그래밍/JAVA 2022. 8. 7. 12:21
java.lang 클래스는 자바에서 가장 기본 동작을 수행하는 클래스들의 집합이다. java.lang 패키지의 클래스들은 import 문을 사용자지 않고 클래스 이름만으로 클래스 사용이 가능하다. java.lang.Object 클래스는 java.lang 패키지 중에서도 가장 많이 사용되는 클래스로 모든 클래스의 최상위 클래스가 된다. 모든 클래스는 Object 클래스의 메소드를 사용할 수 있고, 일부 메소드를 override 해서 사용할 수도 있다. toString() - 객체의 해시코드 출력 - 클래스@해시코드, getClass().getName() + “@” + Integer.toHexString(hashCode()) - 객체의 정보를 문자열 형태로 표현하고자 할 때 override 를 자주 하는 편..
-
[Java] 패키지(package), imPort문프로그래밍/JAVA 2022. 8. 7. 11:57
자바에서 패키지는 클래스와 인터페이스 파일들을 체계적으로 관리하도록 사용하는 디렉토리 개념이다. 사용자가 패키지를 만드는 형태 사용자가 패키지 폴더를 구성하게되고 해당 패키지 내부에 클래스를 생성한다면 아래와 같이 package 표시가 자동으로 생성된 것을 확인할 수 있다. package com.회사명.프로젝트명; package com.koreait.kakaotalk.db; // 패키지 맨 뒤에 주로 패키지 안에 있는 클래스들의 역할로 작성되는 경우가 많다. 만일 패키지를 만들지 않고 클래스를 생성하면 어떻게 될까? 자바는 모든 클래스는 반드시 하나 이상의 패키지를 포함해여하는 규칙이 존재한다. 하지만 패키지 생성 없이 바로 클래스를 생성하였다면 default package에 분류되어 포함된다. Impo..
-
[Java] final, static 제어자프로그래밍/JAVA 2022. 8. 7. 11:13
final 제어자 final 제어자는 값을 바꿀 수 없는 상수의 기능을 부여해준다. final 제어자를 사용할 수 있는 대상으로는 클래스, 메소드, 필드, 지역 변수가 있다. 또한, 클래스에 사용하면 해당 클래스는 다른 클래스가 상속 받을 수 없게 되고 메소드에 사용하면 해당 메소드는 오버라이딩(overriding)을 통한 재정의를 할수 없게 된다. - final 클래스는 상속할 수 없음 fianl class Class1{ ... } class Class2 extends Class{ // 에러! ... } - final 변수는 값을 재할당 할 수 없음 final String str = "Apple"; str = "Banana"; // 에러! - final 메소드는 오버라이딩 할 수 없음 class Cla..
-
[Java] 접근 제어자프로그래밍/JAVA 2022. 8. 7. 10:55
접근제어자는 외부에 공개되는 수준을 의미하여 중요 데이터로부터 접근을 제어하는 기능이다. 접근제어자의 종류로는 4가지가 있다. 1. public : 모든 외부에서 직접 접근하거나 호출이 가능하다. 2. protected : 현재 클래스와 동일한 패키지거나 다른 패키지더라도 상속시 접근하거나 호출이 가능하다. 3. default : 현재 클래스와 동일한 패키지 내에서만 호출 가능하다.(접근제어자를 표기하지않으면 default) 4. private : 해당 클래스 내에 선언되어있으면 해당 클래스 외부에서는 절대 접근하거나 호출할 수 없다. 클래스 접근 제한 - public, default 만 사용 가능 - public인 경우 외부에 클래스를 노출, default는 현재 패키지에서만 접근할 수 있게 함 필드의..
-
[Java] 캡슐화, 은닉화프로그래밍/JAVA 2022. 8. 6. 11:43
캡슐화는 관련있는 변수와 함수를 하나로 묶어 중요한 데이터를 보존, 보호하는 것으로 실제로 구현되는 부분을 외부에 드러나지 않도록 갭슐로 감싸 이용방법만 알려준다. 은닉화는 내부 데이터, 내부 연산을 외부에서 접근하지 못하도록 은닉 혹은 격리시키는 것으로 변수에 접근제한자를 private로 지정하고 setter, getter 메소드를 사용하여 변수의 접근을 제어한다. public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; }..
-
[Java] 메소드(method)(2)프로그래밍/JAVA 2022. 8. 6. 11:23
클래스 내 메소드를 정의하는 방법 public class Person { // 필드 private String name; private int age; // 생성자 public Person() { this.name = "무명"; this.age = 0; } // 메소드 public void info(){ System.out.println("이름 : " + name); System.out.println("나이 : " + age); } } this 키워드 : 현재 클래스의 필드를 가리킴 메소드를 호출하는 방법 public class Method { public static void main(String[] args) { Person person = new Person(); // 객체 생성 person.inf..