본문 바로가기

Back-End/Java17

TIL 230609 : 날짜 시간 데이터와 인사하기. (1. Calendar, Date) 지난 시간에 git공부한 거 토대로 싹 브랜치 정리하고, 나아가 untracked되어야 할 파일이랑 폴더도 추가함. 이것때문에 IDE 모듈상의 오류 때문에 상당한 분노가 생김. 날짜 시간도 공부해야겠다 과제에서 처음 들어보는 개념으로 시간과 날짜에 대한 공부 필요성을 느꼈다. 오후시간에 여유가 있어 수정도 할 겸, 찬찬히 훑어보는 시간을 가졌다. 아래와 같이 나누어 알아보자. 1. Calendar, Date 2. SimpleDateFormat 1. Calendar, Date Calendar, Date 이 두 클래스는 자바의 초기 1.0 1.1버젼에서부터 시작된 클래스라고 한다. 자바의 정석 교재에서도 설명만하고 알아만 두면 좋다고 하고 넘어간다. Calnedar Calendar cal = new Cale.. 2023. 6. 9.
TIL 230607 : ArrayList와 List 사이. (feat. 업캐스팅, 다운캐스팅) private List rooms = new ArrayList(); private List reservations = new ArrayList(); 팀 과제 도중 다른 팀원이 작성한 코드 중 위 코드를 보고 질문했습니다. ArrayList로 생성하고 List 타입으로 받은 이유가 뭐에요..??? A : 얘가 얘한테 상속.. 다형성이잖아요. 다형성인건 알지만 결국엔 그것은 그걸 표현하는 개념의 이름일 뿐이다. 교재의 예제에서도 종종 저렇게 표현하던데, 그랬을 때의 특징과 장점이 있지 않을까 궁금해졌다. public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, java.io.Serializable 우선 Array.. 2023. 6. 7.
TIL 230605 : Stringbuilder랑 가까워지기. 요즘 코딩테스트 문제를 연습하는데, 문자열을 다루는 것에서 기초가 부실함을 느끼기도 했고 다들 String만 쓰는게 아닌거 같길래, 이에 Stringbuilder와 가까워져보기로 한다. 1. Stringbuilder? Stringbuffer? String? 우선 크게 나눠보자면, [ String / Stringbuilder, Stringbuffer ] 두가지이다. 메소드같은 기능적인 부분들이야 비슷하고, 그때그때 구글링해서 써도 무방하지만, 메모리상에 어떻게 동작하는지 어떤때에 어떻게 활용해야 장단점이 있는지 알고 싶었다. 그런면에서 우선, String과 Stringbuilder 이 두가지로 우선 정리할 수 있다. String String은 쉽게 말해서 그때그때 인스턴스를 만든다. 새로운 값을 할당해도 .. 2023. 6. 6.
TIL 230602 : 튜터님의 코드와 비교해보는 코드리뷰 (키오스크 주문 프로그램) 금요일 리뷰마치고 튜터님 코드와 내 코드랑 비교하고 TIL정리를 깜빡해서 이제야 올린다. 튜터님의 코드리뷰 시간 키오스크 프로그램 과제를 마무리하고 튜터님의 코드를 통해 리뷰해보는 시간이 있었다. 내가 짠 코드와 비교할 수 있는 시간이라 굉장히 보고 와닿은 것들이 많았는데 아래에 정리해보려 한다. 1. 한 메소드당 10줄 이상 넘지 않는 것이 좋다. 튜터님의 코드를 처음 봤을 때 든 느낌은 '깔끔하다.'였다. 한 메소드당 10줄이상 넘어가지 않게 짜는게 좋다고 말씀하셨는데, 그 말을 듣고 다시 코드를 보니 그래서 별다른 주석 없이도 이해가 잘 됐던 것 같다. 2. 프린트 기능들을 메소드로 정리해두면 깔끔하다. 반복되는 'System.out.println' 명령어들은 메소드로 정리해서 해당 매개변수를 받아.. 2023. 6. 4.
TIL 230601 : ArrayList와 함께한 오늘의 삽질들. Product객체를 받는 ArrayList를 생성하고, add를 하려는데 빨간불이 뜬다. add를 왜 해석할 수 없을까. 임의의 메소드 안으로 가져와보면 작동한다. 여러가지 시행착오를 시작해봤다. 두가지 빨간줄이 떴다. 1. 메소드 dd()에 '; is expected' 2. main메소드안으로 가져와보면 add는 읽는데 객체를 못 읽는다. 1. dd(); : 저 영역은 main클래스안에 static main 메소드이다. 즉, 메소드 안에서 메소드를 정의하려해서 오류가 났다. 다른 곳에 dd(){ } 형태로 메소드를 만들고, 만들어진 메소드를 dd();형태로 실행만 할 수 있다. 굳이 예시를 해보자면, 다른 클래스에 선언하고, main클래스에서 메소드로서 기능한다. 객체를 만들지 않고 우선 실행해보려고 .. 2023. 6. 1.
TIL 230531 : ArrayList와 가까워지기. 나의 1시간을 가져간 허무한 에러 static ArrayList orderArrayList; static double getTotalPrice() { double total = 0; for (Product product : orderArrayList) { total += product.getPrice(); } return total; } ArrayList 안에 Product 형태의 데이터를 받는 'orderArrayList'를 하나 생성했다. 밑에 List안에 받아둔 객체들안에 double형태의 price를 가져오는 getPrice()메소드를 반복실행할 수 있게 코드를 짰다. iterator()를 호출할 수 없다고 한다. 아직 ArrayList가 비어있어서 그런가. 근데 초기화값인 것과 null로 나오는.. 2023. 5. 31.