본문 바로가기
JAVA

JAVA 개념 정리 2탄

by GoodDayDeveloper 2020. 6. 5.
반응형

 

메서드(함수)

일반적으로 메서드란 자바 프로그램의 구성 요소 클래스 기능이라고 말합니다.

정해진 특정한 기능을 수행하는 모듈이며,

메서드가 필요한 이유는 프로그램 기능을 만들기 위해서라고 말할 수 있습니다.

타입,함수명,매개변수로 구성되어 있습니다.

매개변수 : 메서드가 내부적으로 처리하기 위한 어떠한 값들이 들어가는 공간

반환형 : 메서드가 종료될 때 결과로써 어떠한 값을 반환

메서드는 어떠한 문제를 잘게 쪼개서 쉽게 해결할 수가 있으며 메인 메서드는 프로그램의 시작점이라 말할 수 있습니다.

 

매개변수

매개변수는 메서드의 입력값을 저장하는 변수입니다.

예를들어 int sum(int a, int b)가 있으면 (int a, int b)는 실제 값이 존재하지 않고 형태를 나타내 줄 뿐 입니다.

이때를 매개변수라고 부릅니다.

매개 변수는 자신의 메서드 안에서만 사용이 가능하다는 특징을 가지고 있습니다.

 

리턴값

리턴값은 메서드 종료 후, 반환되는 값입니다.

리턴 값이 있는 메서드 : void가 아닌 메서드

리턴 값이 없는 메서드 : void 타입 메서드

값이 반환되는 위치 : 메서드를 호출한 위치

형태 : return

 

객체 지향 프로그래밍

객체들을 조합하여 전체 프로그램을 만듭니다.

클래스 : 객체의 설계도

객체 : 클래스를 통해 만들어진 프로그램의 구성요소

Fields : 정보 / 상태  (ex : 교수(이름,소속))

Method : 기능 / 동작 (ex: 교수(강의하기, 학점주기))

 

객체 생성 및 사용

클래스를 토대로 객체를 생성합니다.

Ex) student b1 = new student();

학생 객체를 만듭니다.

B1이라는 변수에 학생 객체를 대입합니다.

객체를 통제하기위해 b1이라는 변수가 필요합니다.

B1.name = “하하하”; / 객체 값 초기화 작업

B1.good(); / 객체에게 메서드를 수행

Student b2 = new student(“하하”,100); / 객체 생성과 동시에 초기화 (생성자를 통한 초기화)

 

 

 

접근 제한자와 getter & setter

접근제한자는 공개 여부를 결정하는 키워드이며, 디자인 설계원칙(캡슐화,정보은닉)과 관련이 있습니다.

접근 제한자 종류로는

Private : 비공개 (내부클래스)

Default : 패키지 공개

Protected : 상속공개

Public : 완전공개

Getter method : 비공개(private) 필드를 반환하는 메서드

-       Public 제한자를 넣은 메서드 생성 (public int getBalance(){ return balance;}

Setter method : 비공개(private) 필드를 변경하는 메서드

-       Public void setBalance(int balance(변경하기 위한 입력값))

 

상속

상속은 자식 클래스가 부모의 속성을 물려 받는 것입니다.

클래스 확정에 용이하며 코드 재사용성이 증가하는 효과를 얻을 수 있습니다.

Class 자식 extends 부모

Super(생성자 변수) : 부모 클래스의 생성자를 호출

 

메서드 오버라이딩

메서드 오버라이딩은 부모 메서드를 자식 클래스에서 새롭게 재 정의하는 것입니다.

Portected : 상속관계시 공개 (자식들은 공개)

 

인터페이스

인터페이스는 역할을 정의하는 하나의 타입으로 prototype(내용이 없는) 메서드를 갖으며,

prototype메서드를 오버라이드합니다.

인터페이스의 장점으로는 아래와 같습니다.

다형성 : 한 객체를 다양하게 해석할 수 있다.

그룹화 : 여러 객체를 한 타입으로 관리할 수 있다.

유연성 : 유연한 코드 작성이 가능하다.

 

 

 

 

 

반응형

'JAVA' 카테고리의 다른 글

쿠키와 세션의 차이!  (0) 2020.06.19
JSTL 날짜 포맷 변경 방법  (0) 2020.06.15
JAVA 개념 정리 1탄  (0) 2020.06.04
[JAVA] 객체지향프로그래밍 OOP (Object Oriented Programming)  (0) 2020.04.05
[JAVA] Method  (0) 2020.04.03

댓글