☕ 자바 JAVA 39

[JAVA]생성자 this()와 참조변수 this

똑같이 생겼지만 ()가 붙느냐의 차이로 전혀 다른 역할을 합니다 생성자 this () : 같은 class의 다른 생성자를 호출 시 사용 class Car2 { String color; String gearType; int door; Car2() { /* 코드의 중복을 제거 color = "white"; gearType = "quto"; door = 4; 이렇게 쓰는 대신 this를 사용해 아래처럼 쓸 수 있다. */ this("white", "auto", 4); } Car2(String color) { /* * 다른 생성자 호출 시 첫 줄에서만 사용해야 한다. * color = "white"; -> X * * 같은 클래스 안의 생성자 호출시 class이름 대신 this를 사용해야 한다. * Car2(co..

[JAVA]생성자 Constructor

인스턴스가 생성될 때마다 호출되는 인스턴스 초기화 메서드 규칙 이름이 class 이름과 같아야 한다 리턴값이 없다. 그래도 void 안 붙임 모든 class는 반드시 생성자를 가진다(안 적으면 complier가 알아서 만들어줌) 기본 생성자 Default Constructor 매개변수parameter가 없는 생성자이다. 생성자가 하나도 없을 때 complier가 자동으로 추가한다. 생성자 오버로딩 기본생성자가 필수인 이유는 new로 호출할 때마다 초기화한 class를 참조변수에 새로운 주소값에 담기위함이겠죠. 호출 시 원하는 식으로 사용하려면 매개변수parameter를 담아 호출하려면 생성자 오버로딩이 필요합니다. 매개변수가 있는 생성자 작성시 기본생성자 필수기재 참조 https://youtu.be/HX..

[JAVA]오버로딩 Overloading

한 클래스 안에 같은 이름의 method를 여러 개 정의 매개변수parameter는 달라도 같은 의미의 기능을 수행한다 오버로딩이 성립하기 위한 조건 method 이름이 같아야 한다 매개변수의 개수 또는 타입이 달라야 한다 반환 타입은 영향없다 ※ 주의 long add(int a, long b) {return a+b;} long add(long a, int b) {return a+b;} 위 method를 호출시 long(3, 3)과 같이 사용하면 Compiler가 어떤 걸 호출할 지 판단하지 못해 error 발생 흔히 쓰는 System.out.print()함수는 BlackBox이기 때문에 우리가 코드를 알 필요 없지만 JRE library를 보면 우리가 어떤 parameter를 보내도 편하게 사용할 수 ..

[JAVA]기본형 매개변수와 참조형 매개변수

PrimitiveParam 기본형 매개변수 & ReferenceParam 참조형 매개변수 기본형 매개변수 - read only 참조형 매개변수 - read & write class Data {String x;} public class PrimitiveParamReferenceParam { public static void main(String[] args) { Data d = new Data(); d.x = "main입니다"; System.out.println("main : " + d.x); primitiveParam(d.x); System.out.println(d.x); referenceParam(d); System.out.println(d.x); Data d2 = new Data(); System.o..

[JAVA]Method의 Return문이란

for (int i = 0; i < 5; i++) { if (i == 3) return; System.out.println(i); } return은 반환할 값이 있을때만 사용하지 않습니다 return;이라고 적으면 그곳에서 함수는 실행을 종료합니다 물론 js도 마찬가지입니다. test1 → 0 1 2 → test2 이 순서로 출력되었습니다. return; 실행중인 메서드를 종료하고 호출한 곳으로 돌아가기 때문입니다. return이 있는데도 int형 return 값을 적으라고 적혀있습니다. 조건문을 사용할 경우 어떤 조건이든 return 값이 있어야 합니다 참조 https://youtu.be/CiEYqbwgqZ0?si=WydBNWucOnTQbvNA

[JAVA]Method 메서드란(+ 함수와의 차이, BlackBox란)

Method란? 작업단위로) 문장들을 묶어 놓은 것 값(입력)을 받아 처리하거나 결과를 반환(출력)할 수 있다. Method와 Function(함수)의 차이 Method는 객체지향 개념에서 함수를 지칭한다. Method는 Class안에 있어야만 하는 제약성을 가지지만, 함수는 Class에 독립적일 수 있다. * 구분하고 단어를 쓰는 경우는 별로 없다. Method = 선언부 + 구현부 반환타입 Mehod이름(매개변수 Parameter) {실행코드} 선언부 : 반환타입 Mehod이름(매개변수 Parameter) Method에서 return 반환할타입 Method이름과 매개변수 Parameter : Method호출시 넘겨받는 값을 지정합니다. 구현부 : {실행코드} Method 호출 시 수행될 코드를 작성합..

[JAVA]클래스 Class 정의

참조 : https://youtu.be/ML4CO32-bts 변수는 하나의 타입에 하나의 데이터만 저장할 수 있고 int number = 0; 배열은 하나의 타입에 여러 데이터를 저장할 수 있습니다. int[] numberArr = {0, 1, 2}; List numberList = new ArrayList(); ← generic으로 Object를 지정하면 여러타입을 받을 수 있지만 비권장합니다. 어떻게 하면 좀 더 편하게 사용할까 하다가 명령문과 변수들을 하나의 class에 담아서 사용할 수 있게 만들어서 Class는 설계도 말고도 class : 데이터와 함수의 집합 이라고도 합니다. 또 변수만 모아서 사용하는 경우가 바로 DTO 같은 경우가 있습니다. 변수들만 모아진 class를 정의하자면 class..

[JAVA]class 객체배열을 만들 때 주의할 점

참조 : https://youtu.be/GSVbcmVw1i0 Customer라는 class를 만들어 다른 class에서 여러번 사용해야 한다면 new 인스턴스를 통해 불러와야할 때 Customer customer1, customer2, cutomer3; 이렇게 적은 코드들을 발견하곤 합니다. class를 하나의 변수들이 아니라 배열로 가져올 때 Customer[] customerArr = new Customer[3]; 이렇게 적어도 customerArr[0]부터 [2]까지의 값은 빈 값으로 Customer클래스의 값을 가져오지 못합니다. 따라서 위와 같이 적은 뒤에 안에 class객체를 넣어줘야 합니다. Customer[] customerArr = new Customer[3]; for (Customer ..

[JAVA]한 파일에 여러 클래스 작성하기

출처 : https://youtu.be/hTHFeUTyIEo 위 영상을 보고 정리하였습니다. 앞서 말하자면 하나의 .class 소스파일 안에는 하나의 class만 작성하는 것이 바람직합니다 그럼에도 알고가는 이유는 하나의 .class 파일 안에 여러 클래스를 적을 수 있다는 사실이 신선하고 알아두면 좋은 기본개념이라는 겁니다. 클래스를 생성하면 이런 형태로 자동으로 만들어집니다. 안에 main()함수를 적고 하면 클래스가 실행되죠. 소스파일명과 동일한 class명을 실행하기 때문입니다 만약에 다른 이름으로 바꿔서 실행하면 해당 클래스를 읽을 수 없습니다. main class를 변경하고 싶다면 Run Configuration에서 변경할 수 있습니다. 다시 돌아가서 기본적으로 .class 소스파일을 생성하면..

[JAVA]클래스 Class 개념

클래스는 설계도와 같다 풀어서 얘기하자면 하나의 웹사이트를 만든다면 로그인/게시판/관리자 등의 페이지를 만들겠죠. 그럼 로그인/게시판/관리자 page를 관리하기 위한 각각의 .class를 만듭니다. 만들어진 .class는 로그인 설계도와 같습니다. login.class 파일 안에는 userLogin(), userLogout() 등의 함수가 모여있겠습니다. 위는 .class를 잘 이해하기 위한 비유적인 표현이고 정의 : 객체를 정의해 놓은 것 용도 : 객체를 생성하는 데 사용 는 이렇습니다.