JAVA_DAY2

이정찬·2023년 1월 20일
0

JAVA

목록 보기
2/5

Random

// 라이브러리 import 필요없음
System.out.println(Math.random());

// 필요함
import java.util.Random;

Random r = new Random();
System.out.println(r.nextInt(3)); // 0, 1, 2 중 출력

Array 함수

import java.util.Arrays;

int[] sus = new int[] {11, 22, 33, 1, 1, 2, 2, 3, 3};

System.out.println(Arrays.toString(sus)); // 배열 괄호까지 풀 출력
System.out.println(Arrays.stream(sus).sum()); // 배열 합 출력
System.out.println(Arrays.stream(sus).distinct().toArray()); // 중복 제거 
// [I@47d384ee, INT 배열 이라는 뜻이고 값 출력은 foreach문으로 하면 됨
// stream 함수는 jdk 8 이상에서만 사용 가능

import java.util.HashSet;

Integer[] sus2 = new Integer[] {1, 1, 2, 2, 3, 3};
System.out.println(new HashSet<>(Arrays.asList(sus2)); // [1, 2, 3]

객체지향프로그래밍(OOP)

생성자, get, set, toString() 함수의 override 등은 모두 툴에서 기본제공하는 기능이 있다.

// Person.java
package test.com;

public class Person {
	public int num;
	public String name; // NULL
	public int age = 0;
	
	public static String tel = "010-1234-1234";
	
	{ // 초기화 블럭, 여기에 써도 초기화 된다.
		num = -1;
		name = "Noname";
		age = -1;
	}
	
	static { // static 블럭
		tel = "010-3333-4444";
	}
	
	public Person() { // 생성자
		System.out.println("Person()...");
		num = 11;
		name = "kim";
		age = 22;
	}
	
	public Person(int x) { // 매개변수 넣어서 오버로딩 가능
		System.out.println("Person(int x)...");
		num = x;
		name = "Lee";
		age = 32;
	}
	
	public Person(String s) {
		System.out.println("Person(String x)...");
		num = 13;
		name = s;
		age = 42;
	}
	
	public Person(int a, int b) { // 매개변수 넣어서 오버로딩 가능
		System.out.println("Person(int a, int b)...");
		num = a;
		name = "Park";
		age = b;
	}
	
	public Person(int num, String name, int age) { // 매개변수 넣어서 오버로딩 가능
		System.out.println("Person(int num, String name, int age)...");
		this.num = num;
		this.name = name;
		this.age = age;
	}

	@Override
	public String toString() {
		return "Person [num=" + num + ", name=" + name + ", age=" + age + "]";
	}
}

// main.java
package aaa.bbb;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

import test.com.Person;

public class Test01main {

	public static void main(String[] args) {
		System.out.println("Start main...");
		
		String[] student = new String[] {"1", "kim", "99", "88", "77", "264", "88.0", "B"};
		System.out.println(Arrays.toString(student));
		
//		List<String> lst = new ArrayList<>();
		List<String> lst = Arrays.asList(student); // 위 아래 택1. 그냥 출력하면 대괄호에 싸여서 모두 문자인 걸로 치고 나온다.
	
		// 1. 여러 타입의 정보를 담을 수 있는 필드 설정
		Person p = new Person(); // 생성
		System.out.println(p.num);
		System.out.println(p.name);
		System.out.println(p.age);
		
		Person p2 = new Person(20); // 매개변수와 함꼐 생성
		System.out.println(p2.num);
		System.out.println(p2.name);
		System.out.println(p2.age);
		
		Person p3 = new Person("Choi"); // 매개변수와 함꼐 생성
		System.out.println(p3.num);
		System.out.println(p3.name);
		System.out.println(p3.age);
		
		Person p4 = new Person(20, 30); // 매개변수와 함꼐 생성
		System.out.println(p4.num);
		System.out.println(p4.name);
		System.out.println(p4.age);
		
		System.out.println(Person.tel); // public static 변수 접근
		
		// 2. 필드에 대한 초기화 설정을 하는 생성자 정의. 객체를 생성하는 타이밍에 초기화한다.
		// 3. 필드 값의 설정과 각종 기능을 담당하는 메소드(함수) 정의
		// 4. 클래스 내부의 클래스(내부 클래스 or 중첩 클래스) 정의
		// 5. 관계설정을 통한 상속(단일, 다중)	
	}
}
// Value Object
public class MemberVO {
	private int num;
    private String name;
    private String id;
}
  • 필드 접근은 get, set 함수로 진행한다.
public class MemberDAO {
	// 기능 위주의 객체
	public int insert(MemberVO vo) {
		
		// DB와 연동해서 실행처리
		
		return 0;
	}
	
	public int update(MemberVO vo) {
		
		// DB와 연동해서 실행처리
		
		return 0;
	}
	
	public int delete(MemberVO vo) {
		
		// DB와 연동해서 실행처리
		
		return 0;
	}
   
    public MemberVO[] searchList(String searchKey, String searchWord) {
    	
        // 특정 조건이 맞는 유저의 목록 반환
        
        return new MemberVO[n]; // 실제 사용할 때는 가변 배열
    }
   
    public MemberVO[] selectAll(MemberVO vo) {
    	
        // 모든 회원의 목록 반환
        
        return new MemberVO[n];
    }
    
    public MemberVO selectOne(MemberVO vo) {
    	
        // 회원의 일부 정보를 통해 검색한 회원 정보를 반환
        
        return new MemberVO();
    }
}
  • DB 접근 객체, 즉 DAO는 이런식으로 만들어 주면 된다.
profile
개발자를 꿈꾸는 사람

0개의 댓글