9주차

Cheoly·2023년 11월 27일
post-thumbnail

Java는 이론적인 설명보다 실제 코드가 어떻게 되는지를 보며 이해하는 것이 좋을 것으로 생각되어 코드를 많이 넣을 예정이다. Python이나 다른 언어와 비슷한 면이 약간 있기에 배우는데 어렵진 않을 것이다.

Array

java 에서 array를 구현하는 코드는 아래와 같다. for문과 if문도 들어가 있다.
class 내부에서 실행하면 되는 코드이다.

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// 해위
		int[] score = new int[5]; // 크기가 3인 배열 생성
		score[0] = 10; // 0번 index에 값 할당
		score[1] = 15; // 1번 index에 값 할당
		score[2] = 13; // 2번 index에 값 할당
		score[3] = 20;
		score[4] = 30;
		int sum = 0 ;
		int max = 0;
		for (int i = 0; i< score.length; i++) {
			sum += score[i];
			System.out.println(sum);
			if(max < score[i]) {
				max = score[i];
			}
		}
		
		double avg = (double)sum / score.length;
		System.out.println("점수 합계 : " + sum);
		System.out.println("점수 평균 : " + avg);
		System.out.println("점수 최고 : " + max);
	}

List

Java에서 List를 만드는 코드이다. List를 만드는 방법은 다양하다.

List<String> s = new ArrayList<String>() {
		    {
		        add("1");
		        add("2");
		        add("3");
		    }
		};
		List<String> s1 = new ArrayList<String>(Arrays.asList(new String[]{ "4", "5", "6" }));
		List<String> s2 = new ArrayList<String>(Arrays.asList("7", "8", "9")); // 
		List<String> s3 = new ArrayList<>(Arrays.asList("17", "8", "9"));
		
		System.out.println("1:"+s);
		System.out.println("2:"+s1);
		System.out.println("3:"+s2);
		System.out.println("4:"+s3);
		
		List<String> lst1 = new ArrayList<>(Arrays.asList("17", "8", "9"));
		System.out.println("5:"+lst1);
		s.add("34");
		s.set(0, "10");
		System.out.println("6:"+s);
		for(int i =0; i < s.size(); i++) {
			System.out.println(s.get(i));
		}

리스트는 .get(index)를 사용하여 내부원소를 호출한다.
배열은 [index]를 사용하여 호출한다.

for문과 List


for 문은 아래와 같이 실행할 수 있다. list 대신 array를 써도 되지만 그러면 두번째 방법에서 array.length()를 사용해야한다. 첫번째 방법은 i가 lst의 원소들이 할당되고 두번째에서 i는 index의 값을 갖게 된다.
for (int i : lst){ 실행할 코드 }
for (int i =0; i < lst.size(); i++) { 실행할 코드 }

list 생성하는 방법은 다양하다 아래와 같이 생성 할 수 있다.
List<Integer> lst = Arrays.asList(1,2,3,4,5,7,8,9);
List<Integer> lst = List.of(20,40,70,70,80,70,100);
List<String> s1 = new ArrayList<String>(Arrays.asList(new String[]{ "4", "5", "6" }));
  List<String> s2 = new ArrayList<String>(Arrays.asList("7", "8", "9"));

첫번째와 두번째 방법이 좋은 것이라 생각되니 기억해두자

Class

public class Korean {
	String nation="대한민국";
	String name;
	String ssn;
	
	public Korean(String name, String ssn) {
		this.name = name;
		this.ssn = ssn;
	}
}
// 만든 class를 호출하여 사용하는 방법
public class KoreanExample {
	public static void main(String[] args) {
		Korean k1 = new Korean("윤x철","9708xx");
		System.out.println(k1.name);
		System.out.println(k1.ssn);
        k1.name = "파평윤씨";
        System.out.println(k1.name);
	}
}

하나의 Java Class 파일에 꼭 하나의 Class만 사용해야하는 것은 아니다. 여러개의 Class를 지정해줄 수 있다. this는 그 class 내부에서만 작용하는 변수이다.


Java에서 MySQL 사용하기

Java에서 MySQL을 사용하려면 라이브러리를 다운 받아야한다. 다운받는 곳은 여기서 받으면 된다.
다운 받은 라이브러리를 Eclipse에서 Java project 폴더에 넣어주면 된다. 접근 권한은 아래와 같이 받아와서 실행하면 된다.

package java_mysql;

import java.sql.*;

public class ex01 {
	public static void main(String[] args) {
		// DBSM -> jdbc:mysql:
		// localhost는 mysql 설치위치
		// 어떤 Database 사용하는 건지 -> /examplesdb
		String url = "jdbc:mysql://localhost:3306/classicmodels";
		String id = "MYSQL 썼을 때 사용했던 아이디";
		String pw = "비밀번호";
		
		// 커넥션 객체 만들자
		try {
			Class.forName("com.mysql.jdbc.Driver");
			Connection conn = DriverManager
					.getConnection(url,id,pw);
			
			String sql = "show tables;";	//사용할 MySQL 코드
			PreparedStatement pstmt = conn
					.prepareStatement(sql);
			ResultSet rs = pstmt.executeQuery();
			while(rs.next()) {
				String table_name = rs.
						getString("Tables_in_classicmodels");
				System.out.println("테이블 이름은 "+table_name);
			}			
}
		catch (ClassNotFoundException | SQLException e) {     
		    } 
	}}

String sql에 해당하는 코드 명령어를 입력해주면 된다.

참고 정보

eclipse에서 window -> preferences -> java -> editor -> templates에서 단축키를 설정할 수 있다.
이미 존재하는 단축키도 많으니 활용하면 좋다.
ex) sysout을 치고 ctrl + space 를 누른 후 엔터를 치면 println문이 완성된다.
class 안에서 main을 치고 ctrl + space을 하면 public static void가 생성된다.

옆에 툴이나 탭이 사라졌다면, window -> show view 에서 찾아 쓰면 된다.

public, protected, private으로 class를 생성해줄 수 있다. 기본 값은 public이다. 이것들은 접근 가능성에서 차이가 있다. class로 객체를 생성하거나 상속을 하여 자식 class를 만들 수 있다.

class에서는 필드와 메서드가 존재한다. 필드는 변수이고 메서드는 실행하는 함수라고 보면 된다. 필드와 메서드를 선언할 때 public, protected, private을 선언하여 접근 가능성을 지정해줄 수 있다. 이때 static을 뒤에 붙여준다면 정적으로 지정되어 수정이 불가능해진다.

싱글톤 패턴

소프트웨어 디자인 패턴에서 싱글턴 패턴(Singleton pattern)을 따르는 클래스는, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 이와 같은 디자인 유형을 싱글턴 패턴이라고 한다. 주로 공통된 객체를 여러개 생성해서 사용하는 DBCP(DataBase Connection Pool)와 같은 상황에서 많이 사용된다.

출처: 위키피디아

final 이라는 함수를 사용하면 더이상 변경하지 못하는 변수가 된다.


메모리 영역

HTML, CSS

HTML(Hypertext Markup Language)은 웹페이지를 구성하는 코드이다. 이것을 꾸며주기 위하여 CSS(Cascading Stylesheet)를 사용할 수 있다. HTML은 사람들에게 보여주는 영역이기에 보통 프론트엔드로 본다. 그렇기때문에 어떻게 설계하냐도 중요하긴 하지만, 대부분 반복작업이 많이 필요하다. BootStrap, TailWind와 같은 툴이 있고, 많은 frame들이 존재하기 때문에 그런것을 활용하여 HTML코드를 구성하면 도움이 될 것이다.

profile
데이터 엔지니어

0개의 댓글