< 클래스 만드는 법 >
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://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);
}
}