[TIL] 플레이데이터 인공지능 24기 DAY 92

황예빈·2022년 12월 7일
0

플레이데이터 TIL

목록 보기
7/21
post-thumbnail

ProductTest.java , BookTest.java 리뷰

package day7;
class Product {
	String name;
	int balance;
	int price;
	
	Product(){
		this("듀크인형",5,10000);
	}
	
	Product(String name, int balance, int price){
		this.name=name;
		this.balance=balance;
		this.price=price;
		
		
	}
	
	String getName() {
		
		return name;
	}
	
	int getBalance() {
		return balance;
	}
	
	int getPrice() {
		return price;
	}
	
}
public class ProductTest {
	
	
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Product[] products = new Product[5];
		
		products[0] = new Product("아이폰14",100,1700000);
		products[1] = new Product("갤럭시z플립4",200,1300000);
		products[2] = new Product("동화책",10,11000);
		products[3] = new Product();
		products[4] = new Product("가방",150,50000);
		
		
		
		for(int i = 0; i < products.length; i++) {
			System.out.printf("(%s  %d  %,d원)\n",products[i].getName(),products[i].getBalance(),products[i].getPrice());
			
		}
	}

}
Book b1 = new Book("자바의 정석","남궁성",22500);
		Book b2 = new Book("객체지향 소프트웨어 공학","최은만",26100);
		Book b3 = new Book("스프링 마이크로서비스 코딩공작소","존 카넬",29700);
		Book b4 = new Book("밑바닥부터 시작하는 딥러닝","사이토 고키",21600);
		Book b5 = new Book();

이전까지 클래스 객체를 생성한 후에 배열에 하나씩 넣어주는 방법을 사용했는데 , 배열을 먼저 만든 후 인덱싱 해주면서 객체를 배열에 넣어주는 방법도 있다는 걸 알았다.

return 문

this() 생성자

저번시간에 클래스가 생성될 때 지정해주지 않으면 자동으로 클래스 명과 동일한 이름으로 생성되는 생성자 메서드
=> 디폴트 생성자에 대해서 배웠다.

이렇게 클래스를 정의할 때 멤버변수 name과 매개변수로 받아들인 n이라는 지역변수의 이름이 달라 코드를 짤 때 변수의 개수가 늘어난다. 그렇다고 해서 둘다 동일하게
name = name 이라고 써버리면 null값이 출력되기 때문에
멤버변수와 지역변수를 구분해주기 위해서 멤버변수 앞에! this를 붙여준다.

파이썬의 self와 같은 기능이라고 생각하면 될 듯 하다.

StudentNew(String n,int a, String s){//생성자 메서드 추가 , 안하면 디폴트 생성자가 자동생성
		name = n;
		age = a;
		subject = s;
	}

Scanner 객체

Scanner sc = new Scanner(System.in);

scanner는 자바에서 기본적으로 제공하는 라이브러리 이며, 자바앱이 실행되고 있는 동안 쉽게 사용자의 입력을 해서 받을 수 있도록 도와주는 것으로 정리할 수 있다.

next()

공백 또는 엔터를 구분점으로 판단하고 각 값들을 분리

예) 홍 길동: "홍" 과 "길동"으로 분리

  1. 따라서 값의 갯수만큼 next()를 사용해 주어야 함

nextLine()

공백도 문자열로 판단
주소와 같은 입력값은 빈칸을 허용하면서 값을 받아야하기 때문에 nextLine()을 사용하는 것이 적합

nextInt()

사용자가 입력한 정수값을 받아들임

변수의 scope


[새롭게 알게된 점]

✅인스턴스 변수는 클래스의 인스턴스가 생성될 때마다 생성,
인스턴스마다 각기 다른 값을 유지할 수 있다.

✅클래스 변수는 모든 인스턴스가 하나의 저장공간을 공유하므로 항상 공통된 값을 갖는다.

✅Method Area에는 하드디스크에 있는 클래스가 올라감,
static 형 멤버변수가 만들어짐

✅Call Stack 메서드가 올라감,
지역변수가 만들어짐

✅Heap 인스턴스 객체()가 만들어지는 공간,
인스턴스 멤버변수가 만들어짐,
가비지 콜렉션(더 이상 사용되지 않는 객체를 삭제)이 일어남

profile
Lv. 23

0개의 댓글