[생활코딩] JAVA 기초 8일차

2022. 1. 30. 16:33·Programming language/Java
728x90

[상속]
- 한 객체의 필드(변수)와 메소드를 다른 객체가 물려받을 수 있는 기능

< 효과 >
- 코드 중복를 제거
- 유지 보수에 좋음

<코드 예시>

class SubstractionableCalculator extends Calculator{
	public void substract() {
		System.out.println(this.left-this.right);
	}
}

 

- extands 객체 이름 : 객체의 기능을 확장
- SubstractionableCalculator가 Calculator의 기능을 부모로 해서 상속
- this.left, this.right는 Calculator 객체에서 정의된 것이다.

 

객체에 메소드를 추가하는 게 어려움
1. 객체를 자신이 만들지 않아서 소스를 변경할 수 없음. (변경할 수 있다고 해도 원소스를 업그레이드하면 추가하고 싶은 메소드가 사라짐)
2. 객체가 다양한 곳에서 활용되고 있는데 메소드를 추가하면 다른 곳에서는 불필요한 기능이 포함될 수 있음. 


[ 클래스 다이어그램 ]
- 클래스와 클래스의 관계를 그림으로 간단하게 표현하는 것

[ 생성자 ]
- 객체 생성
- 그 과정에서 해야 할 일을 생성자 메소드에 지정해서 초기화 작업할 수 있음

- 객체를 생성할 때 자동으로 그 생성자를 만들어준다
- 매개변수가 있는 생성자가 있을 때 자동으로 기본 생성자를 만들어주지 않음

- 부모클래스에 기본 생성자를 만든다

super();
- super = 부모 클래스
- () 생성자
- 부모클래스의 생성자

[ overriding ]
- 부모가 가지고 있는 메소드를 물려받지만 자식이 필요에 따라 그 메소드를 재정의해서 기능을 변경
- 부모의 return datatype이 자식의 return datatype과 같아야 overriding가 가능
<예시>

//부모클래스의 메소드
public void avg(){
  System.out.println((this.right+this.left)/2);
}
//자식클래스의 메소드
public void avg(){
  System.out.prinln("평균은 ",(this.right+this.left)/2);
}

//void대신 int 쓰면 안됨. datatype이 다르면 X
//public int avg(){
//  System.out.prinln("평균은 ",(this.right+this.left)/2);
//}


[메소드의 서명 signature]
- 메소드의 이름
- 메소드 매개변수의 숫자와 데이터 타입, 순서
-메소드 리턴 타입


[ overloading ]
- 메소드의 이름이 같아도 매개변수의 형식이나 숫자 다르면 다른 메소드로 인식

 


자바 공부 파이팅!!

 

강의 출처 :

https://www.youtube.com/watch?v=QK8bgsenqLY&list=PLuHgQVnccGMCeAy-2-llhw3nWoQKUvQck&index=84 

생활코딩 자바

 

728x90
반응형

'Programming language > Java' 카테고리의 다른 글

JRadioButton 중복 선택 방지 | Avoid selecting multiple JRadioButton [java swing]  (0) 2024.09.05
eclipse 이클립스 삭제하기  (0) 2023.01.11
[생활코딩] JAVA 기초 7일차  (0) 2022.01.19
[생활코딩] 다시 시작하는 JAVA 기초 6일차  (0) 2022.01.09
[생활코딩] 다시 시작하는 JAVA 기초 5일차  (0) 2022.01.06
'Programming language/Java' 카테고리의 다른 글
  • JRadioButton 중복 선택 방지 | Avoid selecting multiple JRadioButton [java swing]
  • eclipse 이클립스 삭제하기
  • [생활코딩] JAVA 기초 7일차
  • [생활코딩] 다시 시작하는 JAVA 기초 6일차
은성이
은성이
    250x250
  • 은성이
    은성의 블로그
    은성이
  • 전체
    오늘
    어제
    • 분류 전체보기 (84)
      • Front-end (8)
        • html (2)
        • css (3)
        • Vue.js (2)
        • React.js (1)
      • Back-end (10)
        • Node-js (1)
        • spring boot (9)
      • Side project (2)
        • mistake (1)
        • 잊어버렸던 것 (0)
      • Programming language (14)
        • javascript (3)
        • Java (10)
        • C (1)
        • Jsp (0)
      • App (1)
        • Android studio (1)
      • Database (3)
        • MySQL (2)
        • SQL (1)
      • git (6)
      • IoT (6)
        • Arduino (4)
        • 라즈베리파이 (1)
      • Adobe (0)
        • Photoshop (0)
        • Illustrator (0)
      • NFT (1)
      • Metaverse (1)
        • gather town (1)
      • 일상 (9)
        • 독서 reading (2)
        • 강연 (3)
        • 현장실습 (3)
      • 언어 (10)
        • 영어 (10)
        • 일본어 (0)
      • IT (1)
        • linux (1)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    공부
    백엔드
    java
    코딩공부
    css
    개발자
    생활코딩
    html
    개발
    영어
    코딩
    영어복습
    springboot
    깃공부
    화상영어
    GIT
    자바
    프로젝트
    일상
    영어공부
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
은성이
[생활코딩] JAVA 기초 8일차
상단으로

티스토리툴바