왕현성
코딩발자취
왕현성
전체 방문자
오늘
어제
  • 코딩 (277)
    • Python (71)
    • Java (16)
    • MySQL (34)
    • 인공지능 (48)
      • 머신러닝 (16)
      • 딥러닝 (32)
    • 영상처리 (4)
    • Rest API (21)
    • Android Studio (25)
    • streamlit (13)
    • DevOps (22)
      • AWS (9)
      • PuTTY (5)
      • Git (4)
      • Serverless (2)
      • Docker (2)
    • IT 기술 용어 (6)
    • 디버깅 ( 오류 해결 과정 ) (17)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • numpy
  • 영상처리역사
  • maskimage
  • get_long_description
  • 영상기술
  • alibidetect
  • 의료이미징
  • encoding='utf-8'
  • OpenCV
  • 딥러닝
  • 비지도학습
  • PYTHON
  • labelme UnocodeDecodeError
  • TensorFlow
  • ComputerVision
  • imageprocessing
  • alibi-detection
  • unsupervised
  • labelme
  • tune()
  • 컴퓨터비전
  • 기상탐사
  • pytorch
  • UnboundLocalError
  • matplotlib
  • 영상처리
  • ckpt_file
  • pip install labelme
  • PIL
  • yolov8

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
왕현성

코딩발자취

Java - 생성자(Constructor) , 생성자 오버로딩
Java

Java - 생성자(Constructor) , 생성자 오버로딩

2023. 1. 19. 11:04
728x90

1. 생성자

  • 함수의 리턴 타입이 없음
  • 클래스의 이름과 같은 이름으로 함수를 정의
  • 메모리에 객체를 생성하여 영역을 확보
  • 바로 인스턴스 변수에 데이터 셋팅

 

2. 생성자 오버로딩

  • 디폴트 생성자 말고 생성자 오버로딩으로 생성자를 만들 때는
  • 꼭!!!!! 위의 Member() <= 이 디폴트 생성자를 눈에 보이게 만들어줘야한다.
	Member(){
	}
	

	Member(String pName,String pTel,String pAddress){
		name = pName;
		tel = pTel;
		address = pAddress;
	}
	
	Member(String pName){
		name = pName;
	}

 

 

전체 코드

public class Member {
	
	String name;
	String tel;
	String address;
	
	// 아래 함수는 눈에 보이지 않게 자동으로 만들어지는 함수
	// 1. 리턴의 데이터 타입이 없다!
	// 2. 함수의 이름이 클래스의 이름과 같다.
	// 이런 함수를 Constructor(생성자)라고 한다.
	Member(){
	}
	
	// 얘도 생성자
	// 이런 것을 생성자 오버로딩이라고 한다.
	// 위의 디폴트 생성자 말고 이렇게 생성자 오버로딩으로 생성자를 만들면
	// 꼭!!!!!!!!!!! 위의 Member() <= 이 디폴트 생성자를
	// 눈에 보이게 만들어줘야 한다.
	
	Member(String pName,String pTel,String pAddress){
		name = pName;
		tel = pTel;
		address = pAddress;
	}
	
	Member(String pName){
		name = pName;
	}
	
//	Member m2 = new Member();
//	m2.name = "아이유";
//	m2.tel = "010-333-1111";
//	m2.address = "서울시 어딘가";
	
	// 함수의 리턴은 아직 결정하지 않고
	// 함수의 이름과 파라미터만 먼저 생각한다.
	void setMember(String pName,String pTel,String pAddress){
		name = pName;
		tel = pTel;
		address = pAddress;
	}
	void print() {
		System.out.println(name);
		System.out.println(tel);
		System.out.println(address);
	}
	}

 

 

public class MemberMain {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		// 객체생성이란 ??
		
		// 1. 메모리 공간 확보
		Member m1 = new Member();
		// 2. 데이터 저장
		m1.setMember("홍길동", "010-1234-5678", "인천시 서구 가좌동");
		
		Member m2 = new Member();
		m2.setMember("아이유", "010-333-1111", "서울시 어딘가");
		
		// constructor  ( 생성자 )
		// 메모리 공간 확보와 데이터 저장을 한 줄로 처리한다!
		Member m3 = new Member("김나나","010-123-9999","인천시 서구 청라");
		
		// Mike "010-222-5555" "이태원"
		// 생성자로 저장하되, 생성자에 이름만 저장하도록 만든다.
		// 전화번호와 주소는 나중에 저장할 것이다.
		// 메모리 공간 확보하면서 이름만 저장하도록 만들어라.
		Member m4 = new Member("Mike") ;
		
		
		// 잘 저장되었는지 확인
//		System.out.println(m1.name);
//		System.out.println(m1.tel);
//		System.out.println(m1.address);
//		
//		System.out.println(m2.name);
//		System.out.println(m2.tel);
//		System.out.println(m2.address);
		
		m1.print();
		m2.print();
		m3.print();
		m4.print();
		
		
		
		
				

	}

}

'Java' 카테고리의 다른 글

Java - 상속 (Inheritance) / 메소드 오버라이딩 (Method Overriding) / super  (0) 2023.01.19
Java - 접근제어자 / this / getter setter  (0) 2023.01.19
Java - 메소드 오버로딩 (Method Overloading)  (0) 2023.01.18
Java - Static (전역변수)와 메모리의 data영역  (0) 2023.01.18
Java - 클래스 (객체, 인스턴스 변수(=멤버 변수), 메소드)  (0) 2023.01.18
    'Java' 카테고리의 다른 글
    • Java - 상속 (Inheritance) / 메소드 오버라이딩 (Method Overriding) / super
    • Java - 접근제어자 / this / getter setter
    • Java - 메소드 오버로딩 (Method Overloading)
    • Java - Static (전역변수)와 메모리의 data영역
    왕현성
    왕현성
    AI 머신비전 학습일지

    티스토리툴바