코딩을 배우려면, 하나의 코드를 다양한 방식으로 생각하고 뜯어고치면서 새롭게 시도해야한다. 일단 아는 것 부터 한 줄 써보자
리턴타입이란? 지금까진 public (static) void mehtodA(){} 로 선언했던 메소드를 호출하는것에 그치는 것이 아니라 그 응답값을 활용하는 것이다(아직..헷갈려ㅠ)
설명 | 위치 | 인스턴스화 | |
---|---|---|---|
전역변수 | 인스턴스화 o / 클래스 전역에서 사용할 수 있음(같은 이름 변수명 절대 허락x | 클래스 선언 다음(단, 선언과 초기화를 분리해서 작성할 수 없다) 초기화 생략 가능 | 인스턴스변수.전역변수 |
지역변수 | 인스턴스화 x / 메소드 내부, 생성자 내부에서만 사용 | 메소드 내 위치(메소드 안에서는 선언만 해도 됨) | 호출x |
정적변수 | 하나만 만들어져서 공유(싱글톤) | 클래스명 정적변수 |
//Test2 클래스에 P클래스가 생성되어있는 상황
package com.step1;
public class Test4 {
//메인 메소드는 콜백이라서 개발자가 호출할 수 없다.
public static void main(String[] args) {
//insert -> Test2의 메소드 C 호출(인스턴스화)해보기
// System.out.println(P.i); //값 : 1 -> 단순히 P클래스에
System.out.println(P.i); //값 : 1
Test2 t2 = new Test2(); //메소드 C를 인스턴스화 후 불러올 땐 메소드C의 값이 출력
t2.methodC();
System.out.println(P.i); //값 : 3
//메소드C를 경유하였기 때문에 P클래스의 i는 1에서 3으로 변경된 결과가 유지되고 있음.
t2 = new Test2();//메소드 c를 경유하지 않았기 때문에 합법
t2.methodC();
//3 예상 -> 인스턴스화 할 때 초기화가 1로 되었다. P가 1을 갖고 있기 때문에 두 번 호출되어도 그 합은 3일 것이다.
//5 예상 -> 인스턴스화 두번(객체가 또 만들어진 것), 메소드 두 번 호출했으니 1에 2가 두번 더해지지 않았을까?
System.out.println(P.i); //값 : 5
}//end of main
}//end of Test1
코드에서 주소 확인 및 복사
커맨드 복사 1 (cmd에서 config git 입력)
[core]
editor = code
[user]
name = 본인이름
email = 본인이메일계정
[core]
autocrlf = true
editor = code --wait
[pull]
rebase = false
[diff]
tool = vscode
[difftool "vscode"]
cmd = code --wait --diff $LOCAL $REMOTE
[merge]
tool = vscode
[mergetool "vscode"]
cmd = code --wait $MERGED
[alias]
st = status
hist = log --graph --all --pretty=format:'%C(yellow)[%ad]%C(reset) %C(green)[%h]%C(reset) | %C(white)%s %C(bold red){{%an}}%C(reset) %C(blue)%d%C(reset)' --date=short
[mergetool]
keepBackup = false
커맨드 복사 2
Clink v1.5.5 is available.
To apply the update, run 'clink update'.
To stop checking for updates, run 'clink set clink.autoupdate false'.
To view the release notes, visit the Releases page:
https://github.com/chrisant996/clink/releases
C:\Users\GOODEE\Desktop //git 설정창 띄우기
λ git config --global -e
C:\Users
λ d:
D:\cmder\config\profile.d
λ cd ..
D:\cmder\config
λ cd ..
D:\cmder
λ cd .. //한 칸 앞으로 나와짐
D:\
λ mkdir git_test //git_test 만들기
D:\
λ ls //디드라이브 목록 보기 ls
'$RECYCLE.BIN'/ git_test/ 'System Volume Information'/
cmder/ goodee_20230918_public_key/ workspace_java/
CookieRunFont_TTF/ goodee_20230918_public_key.zip 'workspace_java - 바로 가기.lnk'*
eclipse/ goodee_20230920/
D:\ //git_test로 들어가기
λ cd git_test\
D:\git_test //url 넣기 git clone
λ git clone https://github.com/Jeeyeon-Lee/goodee_20230920.git
Cloning into 'goodee_20230920'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.
D:\git_test //잘 연결되었는지 확인
λ cd goodee_20230920\
D:\git_test\goodee_20230920 (main -> origin) //잘 연결되었는지 확인
λ
public String login (String id, String pw){return "나 신입";} //,는 열거형 연산자, 리턴되는 값은 앞선 리턴타입에 맞춘 값만 들어올 수 있음.
(접근제한자) 타입 메소드 메소드 값
package com.step2;
public class Method1 {
public String login(String id, String pw){
System.out.println("사용자가 입력한 id ==> " + id + ", 사용자가 입력한 비번은 ==> " + pw);
String name = "나 신입";
return name;
}
public int methodA() { //리턴타입과 맞는 리턴값 불러오는 예시
return 10;
}
public double methodB() { //리턴타입과 맞는 리턴값 불러오는 예시
return 10.0;
}
public boolean methodC() { //리턴타입과 맞는 리턴값 불러오는 예시
return false;
}
public void methodD() { //리턴타입과 맞는 리턴값 불러오는 예시
}
public static void main(String[] args) {
Method1 m = new Method1();
String name = m.login("kiwi","111");
System.out.println(name);
}
}
package com.step2;
import java.util.Scanner;
public class SungJukPractice {
//Scanner : 콘솔, 소스에서 데이터를 읽어서 여러 작업을 진행
//nextInt() : 다음으로 오는 정수 값을 반환
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int total = 0;
System.out.println("10명의 학생들의 받아쓰기 점수를 입력하세요.");
for(int i=0; i < 10; i = i + 1) {
System.out.print("학생 " + (i + 1) + "의 점수: ");
int score = scanner.nextInt();
total += score;
}
double average = (double) total / 10;
System.out.println("합계: " + total);
System.out.println("평균: " + average);
}
}