Product객체를 받는 ArrayList를 생성하고, add를 하려는데 빨간불이 뜬다.
add를 왜 해석할 수 없을까.
임의의 메소드 안으로 가져와보면 작동한다.
여러가지 시행착오를 시작해봤다.
두가지 빨간줄이 떴다.
1. 메소드 dd()에 '; is expected'
2. main메소드안으로 가져와보면 add는 읽는데 객체를 못 읽는다.
1. dd();
: 저 영역은 main클래스안에 static main 메소드이다. 즉, 메소드 안에서 메소드를 정의하려해서 오류가 났다.
다른 곳에 dd(){ } 형태로 메소드를 만들고, 만들어진 메소드를 dd();형태로 실행만 할 수 있다.
굳이 예시를 해보자면, 다른 클래스에 선언하고, main클래스에서 메소드로서 기능한다.
객체를 만들지 않고 우선 실행해보려고 static 메소드로 선언했다.
2. main메소드안으로 가져와보면 add는 읽는데 객체를 못 읽는다. (shackBurger를 찾지 못한다)
다른 클래스에서 생성해서 못 찾은 것. 굉장히 초보적인 실수..
Static으로 선언 후 클래스 도트연산자로 접근하니 가능했다.
+굳이 다른 클래스말고 동일 클래스내에서 생성하면 바로 이용가능할까?
main 클래스안으로 끌고 왔는데, 다시 빨간줄.
왜냐면 위에서부터 코드가 실행되니까 윗줄에 생성을 먼저하고, 밑줄에서 등록해야한다.
ArrayList.add(); 메소드가 다른 메소드안에서 작동한다. 근데, Static객체를 생성하자마자 list에 추가하고 싶은데, 따로 메소드를 설정하는 것 말고는 방법이 없나?
그냥 메소드안에 처음 시작할때, 값 변화가 없는 상품을 바로 생성하는 static매서드를 만들어서 실행하자 마자 먼저 생성하게 했다. 약간 프로그램 처음 켤때 로딩하는 느낌인데, 이렇게 따로 빼놓는 게 이후 중복해서 객체를 생성하지 않도록 하기 위해 우선 이렇게 세팅했다.
아직 너무 기본적인 개념들이 부족하다..
더 공부해야할 것들
1. static. 생성자 등 메모리 점유 방식
2. 객체, 배열, 콜렉션 자유롭게 다루기.
'Back-End > Java' 카테고리의 다른 글
TIL 230605 : Stringbuilder랑 가까워지기. (0) | 2023.06.06 |
---|---|
TIL 230602 : 튜터님의 코드와 비교해보는 코드리뷰 (키오스크 주문 프로그램) (0) | 2023.06.04 |
TIL 230531 : ArrayList와 가까워지기. (0) | 2023.05.31 |
TIL 230530 : 키오스크처럼 쉬워보이는 거 특 : 개발하려하면 어려움 (feat. static하게) (0) | 2023.05.30 |
TIL 230525 : @오버라이드 super. this. (2) | 2023.05.25 |