23.11.24 - java (day05)

임연진·2023년 11월 27일

< 클래스 만드는 법 >
class 클래스이름(

)

< 객체 생성 >
변수이름 = new 클래스();

< 변수 만드는 법 >
클래스이름 변수이름;
숫자 저장하는클래스 Integer
글자 저장하는클래스 String
// 변수이름 맨앞글자는 소문자로!

class School {
public static void main(String[] args) {
// 클래스로 객체 생성
// 객체를 저장할 수 있는 변수 생성
Student lyj;

    // 앞에서 만든 변수에 new로 객체를 생성해서 =으로 저장
    lyj = new Student();
    lyj.age = 26;
    lyj.name = "임연진";
    lyj.major = true;


    Student hkd;
    hkd = new Student();

    // 객체 안에 있는 변수, 메소드를 사용할 때는 변수이름 다음 . 사용
    hkd.age = 31;
    hkd.name = "홍길동";

< 조건문 >
if(조건) {
조건이 참일 때 실행할 코드
}

if(this.score > 0 ) {
this.score = this.score - 1;
}

< 조건문2 >
if조건 (
조건이 참일 때 실행할 코드1
) else if (
조건이 거짓일때
)

-> 만약에 조건이 참이면 코드1실행,

< 반복문1 >
while(조건)(
반복할코드
조건을 변경할 코드
)

while(num1 > 5){
System.out.println("크다");
num1 = num1 - 1;
}

< 반복문2 >
for(Integer i=0; i<10; i = i + 1){
반복할 코드
}

< 반복문3 >
break가 실행되면 즉시 반복문 종료

continue가 실행되면 바로 다음차례 반복문 실행

< 배열 만드는 법>
클래스이름[] 변수이름 = new 클래스이름[크기];

배열의 값 사용
	변수이름[순서번호];	//순서번호는 0번부터

// 숫자를 여러개 저장한다 -> Integer 배열

< 출력 >
System.out.println("출력하고싶은것");

// 랜덤
0부터 99까지 숫자 중 하나를 랜덤하게 생성해서 num에 저장하는 코드.
Integer num = (int)(Math.random()*100);

1부터 100 사이의 랜덤 숫자를 생성해서 저장하는 코드.
Integer random = (int)(Math.random() * 100) + 1;

// 입력받기 위한 스캐너 만들기
Scanner sc = new Scanner(System.in);

< 메소드 만드는 법 >

class 클래스이름{

반환클래스이름 메소드이름 (매개변수클래스이름 매개변수이름) {
변수 = 변수 + 변수?
return 반환값;
}

< 생성자 만드는법 >

class 클래스이름 {
클래스이름(){
}
}

-> 생성자는 특이하게 반환이 없다. 생성자도 메소드니까 매개변수가 있을 수 있다.

< 상속 >

class 부모{}

class 자식 extend 부모{}

자식 클래스에서 super()를 사용하면 부모생성자 호출
this.는 내클래스호출
super.는 부모클래스호출

오버로딩(overloading) = 새로운 메소드를 정의하는 것입니다.

오버라이딩(overriding) = 상속받은 기존의 메소드를 재정의하는 것

< 오버라이딩 > - 자식클래스에서 사용
@ override
부모 클래스(super class)에 존재하는 필드나 메서드를 자식 클래스(sub class)에서 재정의하여 사용하는 것.

즉 부모 클래스의 이미 정의된 (주로) 함수를 약간 바꾸고 싶다! 하면 사용한다.

오버라이딩을 통해 슈퍼클래스를 부르고 싶다면 super()을 쓰면 된다.

split

replace

toString => 글자로 바꿔달라

get
set


< day04 자동차경주 문제 한글풀이 >

자동차클래스(직접접근하지말고 생성자를 만들어서!
이름
거리

생성자(이름)

이동()
	만약에 0에서 9사이에서 무작위 값을 구한 후 무작위 값이 4이상이면
	거리를 1증가
	반환 거리(return ~)
  • 경주할 자동차의 수 입력
    숫자를 하나 입력받아서 변수에 저장

자동차 클래스를 여러 개 저장할 수 있는 배열 생성해서 변수에 저장

  • 경주 할 자동차 이름을 차례대로 입력
    위에서 입력받은 수만큼 반복
    이름을 입력
    객체를 생성해서 배열의 순서번호에 차례대로 저장

  • 시도할 회수 입력
    숫자를 하나 입력받아서 변수에 저장

  • 실행결과
    입력받은 시도할 회수만큼 반복
    자동차의 수만큼 반복
    자동차를 이동(클래스에 이동이라는 기능을 만들어야함!)
    이름 출력
    : 출력
    자동차가 이동한 거리만큼 - 출력
    (~만큼은 반복문필요!)

    	제일 멀리간 차의 이동거리
    
    	자동차 수만큼 반복
    		제일 멀리간 차의 이동거리와 차의 이동거리가 같으면
    			이름을 출력

< day05 Str >

java에서 sql문 개행할때
"from salarie " +
-> " "안에 글자뒤에 띄어쓰기 되어있어야함
-> + 는 이어쓰겠다는 의미

    • 		앞에있는 변수의값이랑 뒤에있는 변수의값을 값을 직접 적지않고 더할때

. # - 를 검증하고 바꿀때(. # -는 자바에서 못씀)
replace 치면 (target: . replacement :"")
"" 는 보통 비워놓거나 띄워놓음
// soutprintln 할때 프린트할거에 저장해놓고 출력하기! str3 =

// .csv 파일 ,로 구분하는 데이터를 표 형태로 저장하는 파일의 파일확장자
split
String str4 = "abc:def:ghi";
String{[] strArr = str4.split(regex:":");

	-> :로 구분되서 abc 가 0번 인덱스, def가 1, ghi가 2로 표현됨?

// 빈칸을 표현식으로 변경
// %d : 숫자, %s : 글자
"where emp_no >= %d " +
// String.format(빈칸 뚫어둔 글자, 빈칸에 들어갈 변수)
sout.format(str3, emp_no)

final
변수를 변하지않게 최종적으로 선언?
constants 상수(상시 같은 수)로!

abstract 추상의, 미완성의, 공통의
클래스, 메소드에 사용가능
생성자 만들어줘야함? alt + insert

Interface(클래스만들때 클래스가 아니라 인터페이스선택해서만들면됨)
추상화정도가 높다
구현부가없고 선언부만 있다
public void method(){}
public void method(){여기 안에 뭐 적지말고 틀만 적어놔라}
interface 가져올떄는 extends가 아니라 implements
public classInterfaceImplement implements InterfaceTest
// Ctrl + insert 누르고 implement methods로 메소드 자동생성 가능

예외처리 !!중요!!
메인에서
try{
} catch {}

를 클래스들이 메인에 다던져놓고 메인에서 처리할수있게
클래스에서는 int method(int num1, int num2) throws Exception {}

< day05 CollectionTest >

자료 구조 : 자료를 차곡차곡 잘 저장하는 구조
- 리스트,맵 이 중요!

리스트 : 여러개를 저장, 크기가 정해져있지 않다.
	데이터를 추가 제거하는 속도가 배열보다 느리다.
	어레이리스트(ArrayList)
		ArrayList arrayList = new ArrayList();
		
		// 리스트에 값 추가하는법
		arrayList.add("111");
		arrayList.add("222");
		arrayList.add("333");

		sout.println(arrayList); -> [111, 222, 333] 으로 출력되서 나옴(출력된 값이 []대괄호로 시작되면 리스트!)
		
		// 리스트에서 원하는 위치의 값 가져오는 법


맵 : 키와 값(데이터)를 하나의 쌍으로 묶어서 저장(무조건 키랑 같이)
	해시맵 (출력된 값이 {}중괄호로 시작되면 맵)
		HashMap hashMap = new HashMap;
		hashmap.put("key1","임연진");
		System.out.println(hashmap);
		
			-> {key1=임연진}

세트
	
배열
큐
스탭
데크
그래프
트리
힙

String abc = "나는 \"배부르다\"라고 말했다";
-> \를 ""앞에 넣어줘야 ""안에있는 걸 인식함

Maven Repository - 라이브러리 추가할때 필요한 파일 다운받을 필요없이 사이트들어가서 복붙하면됨


< map list > !!중요!!

{"키1":[{"키2":"값2"},"키3":[]}]}
맵안에 리스트안에 맵안에 맵안에 리스트엔에..... 계속안에 들어가있을수있음.

{}중괄호로 시작하면 맵
맵 = JSONObject
맵 = 키:value 형태 = {"키":10}
맵.get("키1")

[]대괄호로 시작하면 리스트
리스트 = JSONArray
어레이리스트

리스트.get(인덱스번호)
리스트.get(0) -> 0번부터 시작함

JSONObject map1 = new JSONObject(json);
String map1Str = map1.get("selected_products").toString();
JSONArray arr1 = new JSONArray(map1Str);
String list1Str = arr1.get(10).toString();
JSONObject map2 = new JSONObject(list1Str);
System.out.println(map2.get("name").toString());

https://mvnrepository.com/

https://codebeautify.org/jsonviewer

day05에 collection test 연습하기
json 예제 연습해보기


11.24 study

< List > [,로 리스트끼리 구분함]

List = 인터페이스
ArrayList = List 인터페이스의 클래스

package day05;
import java.util.*;
public class ArrayPractice {
public static void main(String[] args) {
// 나중에 문법 더 배우고 쓸 형태
// 리스트가 뭐죠 ? 자동으로 늘어나고 줄어드는 배열
List arrayList = new ArrayList();

    // 리스트에 값을 추가하는 법
    arrayList.add("박현범");
    arrayList.add("백송연");
    arrayList.add("김갱미");
    arrayList.add("임연진");
    arrayList.add("강문혜");
    arrayList.add("강지흔");
    System.out.println(arrayList);

    System.out.println(arrayList); //ArrayList는 클래스의 형태 싱관없이 다 입력 O

    arrayList.remove(0); // remove라는 메소드를 인덱스를 입력하여 이용
    System.out.println(arrayList);

    arrayList.remove(0);
    System.out.println(arrayList);

    arrayList.remove("김갱미"); // remove라는 메소드를 객체를 입력하여 이용
    System.out.println(arrayList);

    arrayList.add(0,"박현범"); // add라는 메소드를 인덱스와 객체를 입력하여 이용
    System.out.println(arrayList);

    String a = arrayList.get(1); // String 클래스를 통해 만든 변수 a 에다가 arrayList의 1번 인덱
                                //   스에 있는 객체를 넣게쏘요
    System.out.println(a);

}

}

< map > {}

package day05;
import java.util.*;
public class MapPractice {
public static void main(String[] args) {

    HashMap<String, String> hashmap = new HashMap<>();
    Scanner scanner = new Scanner(System.in);
    // ArrayList 삽입 : add
    // ArrayList 삭제 : remove
    // ArrayList 추출 : get

    System.out.println("몇번 넣고 싶어요 ?");
    int a = scanner.nextInt();

    for (int i = 0; i < a; i++) {
        System.out.println("키를 입력해주세요.");
        String key = scanner.next();

        System.out.println("값을 입력해주세요.");
        String value = scanner.next();
        hashmap.put(key + "은", value);
    }
    System.out.println(hashmap);
}

}

0개의 댓글