8:45 경 학원 도착
같이 듣는 수강생과 git 복습하게 됨
<9:10 1교시>
찍은 스냅샷이 잘못된 경우, 두 가지 방법으로 해결할 수 있다.
1. 잘못된 부분을 수정하고 새로운 스냅샷을 찍기
2. 잘못 찍은 스냅샷을 취소하고 다시 새로 스냅샷 찍기
git hub라는 공유 공간에 git 공동 작업을 하는데, 잘못 찍은 사진은 올리기 전이라면 최근 사진을 취소하고 다시 올린다. 사진 찍자마자 깃허브에 올렸다면 바로 삭제하면 안 되고, 차라리 수정된 새로운 커밋을 추가한다.
리셋할 때는 커밋만 취소(=리셋)할 것인지, add 도 취소할 것인지, 아예 모든 것을 취소할 것인지를 판단해야 한다.
커밋만 취소하면 add까지 돼 있고 commit만 안 함
add까지 취소하면 변경된 내용이 올라가 있기만 함
모든 것을 취소하면 사진과 파일의 내용이 동일하다
파일은 HEAD가 가리키고 있는 곳으로 파일의 상태를 변화 시켜준다.
branch에 이름을 붙여 주는 곳은 중요한 지점이라고 생각하면 되고, HEAD~를 이용해서 전 단계 스냅샷으로 가는 것은 뒤로가기 버튼 정도로 이해하면 될 것 같다.
사진 폴더를 생각하고, HEAD는 내가 보고 있는 사진의 화면 정도로 생각하고, HEAD~는 이전 사진으로 넘기는 버튼 같은거고, branch로 이름 붙여주는건 특별한 사진에 이름이나 태그나 즐겨찾기 해놓은 느낌이고, 그중에서 Master 브랜치는 기준이 되는 branch일 뿐인 그런 상상을 하면 될듯.
git gui &를 입력하고 Repository에서 Visualize all history를 누르면 됨.
&를 입력하지 않으면 git bash와 gui를 동시에 사용할 수 없음.
<10:30 2교시>
package test.main;
import java.util.Scanner;
public class MainClass03 {
public static void main(String[] args) {
/*
* System 클래스의 in 이라는 필드에는 콘솔창으로부터 입력받을 수 있는
* 객체의 참조값이 들어 있다.
* in 의 type은 InputStream이다.
* Scanner 클래스의 생성자는 아래와 같은 모양의 생성자가 있다.
* Scanner(InputStream is)
* 따라서 아래의 코드는 콘솔창으로부터 입력받을 수 있는 Scanner 객체가 생성된 것이다.
*/
System.out.println("문자열 입력:");
Scanner scan = new Scanner(System.in);//Scanner를 콘솔에 연결해서 편하게 읽어들이겠다.
//System.in : InputStream type 객체의 참조값을 Scanner 클래스의 생성자에 전달해서 객체 생성하겠다
String line = scan.nextLine();
System.out.println("입력한 문자열 :"+line);
}
}
package test.main;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class MainClass04 {
public static void main(String[] args) throws FileNotFoundException {
File f = new File("src/test/mypac/memo.txt");
//File : 디렉토리나 파일 객체를 활용하고자 할 때 사용하는 객체
//파일의 추가, 수정, 읽기 등이 모두 가능
Scanner scan = new Scanner(f);
//public class Scanner{public Scanner(File file){해당 File 객체에서 문자열을 읽어들일 준비를 함}}
//Scanner가 File에서 읽은 것
String line=scan.nextLine();
System.out.println("memo. txt 파일의 첫번째 줄"+line);
}
}
객체의 도움을 받아 기능 만들기(아래 더보기에 코드)
File 객체와 Scanner 객체의 도움을 받으면 파일로부터 문자열을 읽어들일 수 있다
System.out 에 있는 PrintStream 객체의 도움을 받으면 콘솔창에 문자열을 출력할 수 있다.
File 객체, Scanner객체, PrintStream 객체 세 개의 객체의 도움을 받아 이런 동작을 할 수 있다.
package test.main;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class MainClass05 {
public static void main(String[] args) throws FileNotFoundException {
File f =new File("src/test/mypac/memo.txt");
Scanner scan= new Scanner(f);
while(true) {
String line = scan.nextLine();
System.out.println(line);
}
}//File 객체와 Scanner 객체의 도움을 받으면 파일로부터 문자열을 읽어들일 수 있다
//system.out 에 있는 PrintStream 객체의 도움을 받으면 콘솔창에 문자열을 출력할 수 있다.
//File 객체, Scanner객체, PrintStream 객체 세 개의 객체의 도움을 받아 이런 동작을 할 수 있다.
}
나의 창 만들기
package test.main;
import javax.swing.JFrame;
public class MainClass06 {
public static void main(String[] args) {
JFrame f = new JFrame("나의 창");
//Java 창을 만들 객체 , 괄호 안의 이름은 창의 제목이 됨
//.setBounds(x,y,width, height)
f.setBounds(100, 100, 500, 500);
//앱의 닫기 버튼을 눌렀을 때 프로세스가 종료되도록(앱이 종료되는 방식)
//JFrame.EXIT_ON_CLOSE는 스태틱 필드의 JFrame 클래스의 3이라는 숫자로 정의된 애
//public static final int EXIT_ON_CLOSE =3;
//위의 문장은 의미없는 숫자에 의미를 부여한다는 뜻. final은 readonly로 쓰겠다는 의미
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//화면에 보이도록 한다 = true
f.setVisible(true);
}
}
<11:30 3교시>
컴퓨터에서 기본 생성자를 선언하지 않고 Computer 객체를 기본생성자가 아닌 방식으로 사용하는 예제인데 나는 네줄로 풀었는데 맞긴 함.
package test.main;
import test.mypac.SSD;
import test.mypac.MEMORY;
import test.mypac.CPU;
import test.mypac.Computer;
public class MainClass07 {
public static void main(String[] args) {
//생성자에 전달할 객체를 미리 생성해서 참조값을 지역 변수에 담은 다음 생성자에 지역변수명으로 전달하기
CPU c1= new CPU();
MEMORY m1 = new MEMORY();
SSD s1 = new SSD();
Computer com1 = new Computer(c1, m1, s1);
//c1, m1, s1 자리에 null들을 잔뜩 넣으면 의미없고 동작 못하는 쓰레기 객체가 생성됨
//위에 네 줄을 한 줄로 줄이면
Computer com2 = new Computer(new CPU(), new MEMORY(), new SSD());//이렇게 하면 됨
}
}
기본 데이터 타입을 포장해서 참조값에 담아두는 방법(autoboxing)
객체 안에 기본 데이터를 포장해 놓은 꼴로 만드는 방법은 첫글자를 대문자화한 데이터 타입과 Integer, Character에 데이터를 대입시키면 끝.
package test.main;
/*
* [기본 data type의 참조 data type]
* byte : Byte
* short : Short
* int : Integer
* long : Long
*
* float : Float
* double : Double
*
* char : Character
* boolean : Boolean
* - 때로는 기본데이터타입의 참조데이터타입이 필요할 때가 있다.
* - Integer와 Character만 빼면 나머지는 첫글자만 대문자로 바꾸면 된다
* - 기본데이터타입을 객체에 포장(boxing)하여 저장한다.
* - boxing과 unboxing은 자동으로 되기 때문에 프로그래머가 신경을 쓸 필요는 없다
*/
public class MainClass01 {
public static void main(String[] args) {
Byte b=10;
Short s=20;
Integer i=30;
Long l= 40L;
Float f=10.1f;
Double d=10.2d;
Character c='a';
Boolean isRun=true;
}
}
<12:30 4교시>
package test.main;
public class MainClass02 {
public static void main(String[] args) {
//기본데이터타입 num1
int num1=10;
//참조데이터타입 변수 num2
Integer num2=10;
//참조데이터타입이지만 기본 데이터 타입처럼 사용할 수 있다
int result1=num2+1;
int result2= num1+num2;
Integer result3=num1+num2;
}
}
이후 오전에 연습했던거 다시 시도.
'자바풀스택 과정 > 자바 풀 스택 : 수업내용정리' 카테고리의 다른 글
자바 풀 스택 12/18 오전 기록 020-1 (1) | 2024.12.18 |
---|---|
자바 풀 스택 12/17 오후 기록 019-2 (1) | 2024.12.17 |
자바 풀 스택 12/16 오후 기록 018-2 (0) | 2024.12.16 |
자바 풀 스택 12/16 오전 기록 018-1 (1) | 2024.12.16 |
자바 풀 스택 12/13 오후 기록 017-2 (1) | 2024.12.13 |