9:15경 학원 도착
<9:30 1교시>
git restore .
변경 사항이 저절로 사라짐 ->대신 이건 복구가 안됨,
단, 추적된 파일에 대한 변경 사항만 가능 untracked file에 대한 변경 사항은 변경하지 못한다.
untracked file 까지 지워주려면
git clean -fd
명령어를 사용해야 한다. untracked 상태인 file 과 directory까지 다 지워버리겠다는 얘기
git reset의 강도 (git reset --어쩌구 HEAD~)
1. soft : commit 내용만을 취소하고 add . 된 상태로 복귀. commit message 수정이나 add . 이 아닌 다른 add로 commit 한 경우
2. mixed : commit 과 add가 취소되고, 변경 상황 자체는 남아있음. 디폴트 값이어서 --mixed 만 빼도 됨.
3. hard : commit, add, 변경 내용이 모두 취소되어 이전 커밋 상태로 워킹 트리가 클린한 상태로 리셋됨.
git reflog를 사용한다면 HEAD의 이동 이력을 볼 수 있다.
origi_HEAD : 원래 head가 있던 곳으로 되돌리겠다.
git reset --hard HEAD@{1} 바로 이전 커밋으로 되돌리기
git reflog HEAD의 이동 이력을 볼 수 있다.
git reset --hard HEAD~ HEAD가 한칸 더 이전 걸로 감
git reset --hard ORIG_HEAD 바로 이전 HEAD가 있던 곳으로 감
initialize repository : git init 의 역할을 해줌
+기호 눌러서 add, 제목 붙이고 commit. master 브랜치 아니고 main 브랜치라고 이름이 붙여짐.
terminal 이용해서도 git 을 활용할 수 있음
git stash -u :untracked file까지 임시저장하겠다
<10:30 2교시>
임시저장한 stash 파일을 불러오는 과정들 보기
ArrayList<데이터 타입의 generic 지정>
데이터 타입의 generic을 Object라고 지정하면 아무거나 다 담길 수 있다.
그리고 ArrayList의 특성 상 입력한 순서대로 알아서 들어간다.
Consumer는 메소드 1개 짜리 인터페이스인데, ArrayList의 데이터 타입을 따라
이것을 구현하여 매개변수에 저장된 arraylist의 아이템을 자동으로 호출하는 방법.
foreach라는 메소드를 호출하면서 동작(메소드)하나를 객체에 포장해서 전달하는 것
메소드 하나짜리 인터페이스는 함수 형태로 쓸 수 있다. 그래서
Consumer<String> con = (t)->{};
greets.forEach(con);
또는
greets.forEach((t)->{System.out.println(t);});
라고 함수를 변수에 담은 모양으로 쓸수도 있는 것이다.
package test.main;
import java.util.ArrayList;
import java.util.function.Consumer;
public class MainClass03 {
public static void main(String[] args) {
//인사말을 담을 ArrayList 객체를 생성해서 참조값을 greets 라는 지역변수에 대입하기
ArrayList<String> greets = new ArrayList<>();
//greets 에 들어 있는 참조값을 이용해서 인사말 3개를 임의로 담아보세요
greets.add("hello");
greets.add("hi");
greets.add("good night");
//확장 for 문을 이용해서 모든 인사말을 콘솔창에 순서대로 출력해 보세요.
for(String tmp : greets) {
System.out.println(tmp);
}
System.out.println("--- ---");
//아래의 동작을 분석해 보세요
Consumer<String> con = new Consumer<String>() {
@Override
public void accept(String t) {
// 매개 변수에 전달되는 item 을 가지고 어떤 작업을 할지 여기에 coding 을 하면 된다.
System.out.println(t);
}
};
/*
* ArrayList 객체의 forEach() 메소드를 호출하면서 Consumer type 객체를 전달하면
* 전달된 객체의 accept() 메소드를 호출하면서
* ArrayList 객체에 저장된 item 을 순서대로 매개 변수에 전달해 준다.
*/
greets.forEach(con);
System.out.println("-----");
Consumer<String> con2 = (t)->{
System.out.println(t);
};
greets.forEach(con2);
System.out.println("-----");
greets.forEach((t)->{
System.out.println(t);
});
}
}
예제
2번까지도 헤매느라 간신히 했고 나머지 다 못풀었뜨아아아ㅏㅏㅏㅏㅏㅏㅏㅏ아앍!!!
정신차리고 공부해!!!
//1. Car type을 저장할 수 있는 ArrayList 객체를 생성해서 참조값을 arrayList 인터페이스 type 지역 변수 cars에 담기
//2. Car 객체(3개)를 생성해서 ArrayList 객체에 저장하기
//3. 일반 for 문을 이용해서 array List 객체에 저장된 모든 Car 객체의 drive()메소드를 순서대로 호출하기
//4. 확장 for 문을 이용해서 array list 객체에 저장된 모든 car 객체의 drive 메소드를 순서대로 호출하기
//5. arraylist 객체의 forEach()메소드를 이용해서 arraylist 객체에 저장된 모든 car 객체의 drive()메소드를 순서대로 호출하기
예제 답
package test.main;
import java.util.ArrayList;
import test.mypac.Car;
public class MainClass04 {
public static void main(String[] args) {
//1. Car type을 저장할 수 있는 ArrayList 객체를 생성해서
//참조값을 arrayList 인터페이스 type 지역 변수 cars에 담기
ArrayList<Car> cars = new ArrayList<>();
//2. Car 객체(3개)를 생성해서 ArrayList 객체에 저장하기
Car car1 = new Car("기아");
Car car2 = new Car("벤츠");
cars.add(car1);
cars.add(car2);
cars.add(new Car("현대"));
//3. 일반 for 문을 이용해서 array List 객체에 저장된 모든 Car 객체의 drive()메소드를 순서대로 호출하기
for (int i=0; i<cars.size(); i++) {
Car tmp= cars.get(i);
tmp.drive();
}
//4. 확장 for 문을 이용해서 array list 객체에 저장된 모든 car 객체의 drive 메소드를 순서대로 호출하기
for(Car tmp:cars) {
tmp.drive();
}
//5. arraylist 객체의 forEach()메소드를 이용해서 arraylist 객체에 저장된 모든 car 객체의 drive()메소드를 순서대로 호출하기
cars.forEach((tmp->{tmp.drive();}));
}
}
<11:30 3교시>
2교시 때 예제 처참하게 못하고 3교시때는 따라해서 어찌어찌 했는데
혼자 어케하냐 ㅋㅋㅋㅋ ㅠ 공부해!
package test.main;
import java.util.ArrayList;
import java.util.List;
import test.mypac.Member;//패키지명 잘 보고 import 하기
public class MainClass05 {
public static void main(String[] args) {
//1. member 객체를 담을수있는 어레이리스트 객체를 생성해서 참조값을 members 라는 List type 지역변수에 담아 보세요.
List<Member> members = new ArrayList<Member>();
//2.3명의 회원정보를 멤버 객체에 각각 담으세요(멤버 객체 3개가 생성)
Member mem1 = new Member(1, "하나", "서울");
Member mem2 = new Member(2, "두리", "경기");
Member mem3 = new Member(3, "사미", "부산");
//3. 위 멤버 객체의 참조값을 List 객체에 모두 담기
members.add(mem1);
members.add(mem2);
members.add(mem3);
/*
* 4. members 리스트 객체에 담긴 애용을 이용해서 회원 목록을 아래와 같은 형식으로 반복문을 돌면서 출력하기
* 번호: 1, 이름: 김구라, 주소: 노량진
* 번호: 2, 이름:해골, 주소 : 행신동
*
*/
members.forEach((tmp)->{System.out.println("번호: "+tmp.num + ", 이름:" + tmp.name + ", 주소: "+ tmp.addr);});
/*
* for (Member tmp:members){
* //String 클래스의 format()이라는 static 메소드를 이용해서 원하는 문자열 형식을 만든 다음
* String info = String.format("번호:%d, 이름:%s, 주소: %s", tmp.num, tmp.name,tmp.addr);
* //콘솔창에 출력하기
* System.out.println(info);
* }
*/
}
}
또다른 예제
package test.main;
import java.util.ArrayList;
import test.mypac.MemberDto;
public class MainClass06 {
public static void main(String[] args) {
//1. MemberDto 객체를 담을 수 있는 어레이리스트 객체를 생성해서 참조값을 members라는 지역변수에 담기
ArrayList<MemberDto> members = new ArrayList<>();
//2. 3명의 회원정보를 memberDto 객체에 각각 담기(memberdto 객체가 3개 필요)
MemberDto m1 = new MemberDto(1, "하나", "서울");
MemberDto m2 = new MemberDto(2, "두리", "경기");
MemberDto m3 = new MemberDto(3, "사미", "부산");
//3. 위에서 생성된 memberDto 객체의 참조값을 arraylist객체에 모두 담기
members.add(m1);
members.add(m2);
members.add(m3);
//4. 반복문을 이용해서 members에 들어있는 회원정보 출력하기
for (MemberDto tmp: members) {
String info = String.format("번호:%d, 이름:%s, 주소:%s", tmp.getNum(), tmp.getName(), tmp.getAddr());
System.out.println(info);
}
}
}
<12:30 4교시>
3교시 마지막에 한 예제 답 + Object...이나 String...의 의미(전달할 매개변수 개수를 유동적으로 하겠다는 의미)
package test.main;
import java.util.ArrayList;
import test.mypac.MemberDto;
public class MainClass06 {
public static void main(String[] args) {
//1. MemberDto 객체를 담을 수 있는 어레이리스트 객체를 생성해서 참조값을 members라는 지역변수에 담기
ArrayList<MemberDto> members = new ArrayList<>();
//2. 3명의 회원정보를 memberDto 객체에 각각 담기(memberdto 객체가 3개 필요)
MemberDto m1 = new MemberDto(1, "하나", "서울");
MemberDto m2 = new MemberDto(2, "두리", "경기");
MemberDto m3 = new MemberDto(3, "사미", "부산");
//3. 위에서 생성된 memberDto 객체의 참조값을 arraylist객체에 모두 담기
members.add(m1);
members.add(m2);
members.add(m3);
//4. 반복문을 이용해서 members에 들어있는 회원정보 출력하기
for (MemberDto tmp: members) {
String info = String.format("번호:%d, 이름:%s, 주소:%s", tmp.getNum(), tmp.getName(), tmp.getAddr());
System.out.println(info);
}
//테스트 메소드 호출 : 매개변수에 전달할 스트링 타입의 개수가 유동적이다.
test();
test("kim");
test("kim", "lee", "park")
}
//테스트
public static void test(String... msgs) {
//String...은 String[]type이다
String[] a=msgs;
}
}
'공부의 기록 > 자바 풀 스택 : 수업내용정리' 카테고리의 다른 글
자바 풀 스택 12/24 오전 기록 024-1 (0) | 2024.12.24 |
---|---|
자바 풀 스택 12/23 오후 기록 023-2 (0) | 2024.12.23 |
자바 풀 스택 12/20 오후 기록 022-2 (1) | 2024.12.20 |
자바 풀 스택 12/20 오전 기록 022-1 (1) | 2024.12.20 |
자바 풀 스택 12/19 오후 기록 021-2 (1) | 2024.12.19 |