목표
자바의 Class에 대해 학습하세요.
학습할 것 (필수)
- 클래스 정의하는 방법
- 객체 만드는 방법 (new 키워드 이해하기)
- 메소드 정의하는 방법
- 생성자 정의하는 방법
- this 키워드 이해하기
메소드
ㄴ다른말로 하면 함수
유지보수가 쉽게 만들기 위해서 사용된다.
정의 부분과 호출부분으로 나뉨
메소드가 없다면 -> 코드 재활용성이 낮아짐 -> 코드량 증가 -> 유지보수가 어려워짐
입력과 출력
어떤 값을 입력했을때 출력값이 달라진다면 재활용 측면에서 유리해진다.
매개변수와 인자
함수에 입력값을 주면 입력 값에 따라서 출려값이 다름
ㄴ 정의 함수를 정의 할때 이름 옆에 매개변수를 만듬
ㄴ 사용 출력할때 인자값을 줌
+ 인자를 2개 이상 받을 수도 있음
메소드 출력
메소드의 값을 메인으로 돌려줌(return)
왜 돌려주는가?
해당 함수를 출력으로 사용할 수도 있지만 메일로 사용하거나 다른용도로도 사용 하고 싶어서
예)numbering(3,5)만 사용하면 출력만하는것
하지만 값으로 돌려줄 경우
그 값만 가지고 할 수 있는것이 무궁무진하다
메소드 오버로딩(메소드 중복 정의)
1. 함수의 이름은 같지만 구분하여 호출할 수 있는기능
2. 동일한 기능의 메소드에 자료형만 다르게 할 경우 유효
조건:
1. 전달받은 인자값(매계변수)으로 구분
갯수 순서 자료형으로 구분
이름이 아니라 자료형으로 구분한다.
- 클래스 정의하는 방법
함수들이 점점 많아지면 받아야할 인자값 혹은 변수가 많아진다 그러면 유지보수가 점점 어려워진다.
그래서 데이터와 메소드를 한곳에 모으는 작업이 클래스이다.
cal c1 = new cal()
c1.setOper(10, 20)
c1.sum()
c1.put()
클래스는 설계도이다. 객체는 변수+함수이다. 이 모든것은 하나의 프로그램이다.
인스턴스는 제품이다. 클래스를 정의하고 그 설계도로 만들어진 제품이다.
클래스 소유 변수
1. 3.14같은 변할필요가 없거나
2. 인스턴스를 생성할 필요가 없는 값을 클래스에 저장하고 싶은경우(base)
3. 값의 변경 사항을 모든 인스턴스가 공유해야하는 경우
+final=변하지 않는 상수
인스턴스 변수
인스턴스가 만들어지면서 생성되는 변수
- 객체 만드는 방법 (new 키워드 이해하기)
설계도 만들기 ->인스턴스 만들기 -> 이름.으로 사용하기
cal c1 = new cal()
cal이란 이름의 제품을 만든다.new cal()
그 제품을 c1 이라는 변수에 넣는다.
- this 키워드 이해하기
클래스가 인스터스화 되었을때 의 인스턴스를 가리키는 것
지역변수와 전역변수
지역변수는 해당 함수 혹은 괄호 안에서만 살아있는 변수
전역변수는 모든 곳에서 사용가능한 변수= static을 사용하여 만든다.
this 인스턴스 생성 했을때 인스턴스 자기 자신을 말하며
전역에 있는 변수와 지역의 변수의 이름이 같을때 지역변수가 우선순위가 높아서 전역변수를 나타내기 위해 사용한다,
- 생성자 정의하는 방법
초기화와 생성자
함수를 사용할때 특정값을 꼭 넣어야지만 사용할 수있는 경우가 있다.
하지만 그 함수를 처음 보았을때 알지 못하는 경우가 생길 수 있다.
그래서 생성자를 만들어 강제적으로 특정값을 넣어야하는 상황을 만드는 것이다.
클래스와 같은 이름의 함수를 생성한다는 의미의 -> 생성자
시작과 동시에 한번 실행된다.
인스터스란 클래스를 복제하는것
FileWriter f1 = new FileWriter("data.txt")
f1.write("hello")
f1이라는 것에 담기는 복제본을 만들겠다.
그리고 그 복제본을 data.txt에 넣겠다
'JAVA 기본' 카테고리의 다른 글
7주차 과제: 패키지 #7 (0) | 2021.02.23 |
---|---|
6주차 과제: 상속 #6 (0) | 2021.02.23 |
4주차 과제: 제어문 (0) | 2021.02.02 |
3주차 과제: 연산자 (0) | 2021.02.02 |
JAVA학습 2주차 (2021.01.21) (0) | 2021.01.22 |