[JAVA] 생성자 / 메소드

Dawon Ruby Choi·2023년 8월 30일
0

Java

목록 보기
12/18
post-thumbnail

생성자

생성자 : 아무 것도 없는 상태로 메모리에 객체가 생기면 각 필드에 기본값이 들어가 있는데, 특정값으로 초기화 시키고 싶을 때 생성자 이용 (단, 특정값을 초기화시키고 싶을 때 만 사용하는 건 아님)

ex)

생성자 특징
1) 반환 타입이 없음
2) 클래스명을 똑같이 지정해주어야함

기본생성자 - 매개변수가 없는 생성자, 데이터 없으면 jvm이 자동 생성
매개변수 생성자 - 매개변수가 있는 생성자, jvm이 자동으로 생성해주지 않음

오버로딩

메소드에 적용이 되지만 생성자도 메소드의 일부이기 때문에 적용됨

★ 매개변수의 순서가 다르거나 타입이 다르거나 개수가 다른 경우 오버로딩 적용★

ex) 예시


public class User {
	private String userId;
	private String userName;
	private int age;
	private double point;
	
	public User () { //내가 스스로 기본 생성자를 만들어야 뒤에서 실행 가능
	}
	
	//생성자 (일반적으로는 field와 메소드 사이)
	//void 지우고 class랑 이름 동일하게
	public User (String id, String name, int nai, double p) {
		userId = id;
		userName = name;
		age = nai;
		point = p;
	}
	
	public User(String id, String name, int nai) {
		userId = id;
		userName = name;
		age = nai;
	
		// 위 public user 3개는 개수가 달라서 오버로딩이 적용되었음
	}

//필드명은 파란색, 지역변수는 노란색으로 표시됨
//필드명과 지역변수 이름이 같을 때는 지역변수가 우선순위

레퍼런스 변수 = 참조 변수 (주소값을 가지고 있는 변수)

this

내 클래스에 다른 생성자 호출시 사용

생성자 실습 예제)

package com.kh.example.practice4.mode.vo;

public class Book {
	private String title;
	private String publisher;
	private String author;
	private int price;
	private double discountRate;
	
	public Book() {}
	public Book(String title, String publisher, String author) {
		this.title = title;
		this.publisher = publisher;
		this.author = author;
		
	}
	public Book(String title, String publisher, String author, int price, double discouneRate) {
		this(title, publisher, author); // 위에 있기 때문에 this 생성자 이용
		this.price = price;
		this.discountRate = discountRate;
	}
	public void inform() {
		
	}
}
package com.kh.example.practice4.run;

import com.kh.example.practice4.mode.vo.Book;

public class Run {

	public static void main(String[] args) {
			Book b1 = new Book();
			Book b2 = new Book("자바의 정석","행복출판사","남궁성");
			Book b3 = new Book("초보자를 위한 리액트 200제", "정보문화사","이정열",15000,0.2);
			
			b1.inform();
			b2.inform();
			b3.inform();
	}		
}

메소드

반환타입은 무조건 있어야함
반환할 값이 없을 경우 void 사용

메소드 접근제한자

메소드 예약어

메소드 반환형

반환형 메소드 예시)
int : length, next ...
boolean : equals ...
char : charAt ...
double : random ...
배열 : copyOf (배열 안에 있는 값이 아닌, 배열 주소 값이 반환 - 얕은 복사)

가변인자 ex) pintf

메소드 표현식

▲리턴값이 int타입으로 있을 것이다.
return을 쓰고 뭘 반환할것인지 무조건 적어줘야함

getter/setter 메소드

getter : 값을 반환해주는 메소드 (반환타입 있어야함 , 매개 변수 사용x)

setter : 값을 변경해주는 메소드 (반환타입 - void , 매개변수 존재)

return

메소드 실습 예제)

profile
나의 코딩 다이어리🖥️👾✨

0개의 댓글