개발자로 가는길 :: 'kdigitaltraining' 태그의 글 목록
반응형

kdigitaltraining에 해당하는 글
반응형
6

Java Collection framework(List)

728x90
반응형

인터페이스별 특징 중요하니 외울것.

/*
 * 컬렉션 프레임워크
 * - List , Set 인터페이스가 상속  , 따로 Map인터페이스 가 있다
 * 
 * - List : 순서가 존재함 , 데이터 중복 허용
 *   구현클래스 : ArrayList, LinkedList , Stack ,Vector 등등
 * 
 * - Set  : 순서를 유지하지 않음, 데이터 중복 허용하지 않음
 *   구현클래스 : HashSet , TreeSet 등등
 * 
 * - Map  : key,value 의 쌍으로 이루어진 데이터 집합
 *  순서를 유지하지 않음 , key는 중복이 되지 않고 value는 중복 허용
 *  구현클래스 : HashMap, TreeMap, Hashtable , Properties 등등

 * 
 * 컬렉션 : 여러 데이터들을 모아놓은 것
 * framework : 표준화 , 정형화된 프로그래밍 방식
 * 라이브러리 : 공통으로 사용될만한 유용한 기능을 모듈화
 * 
 */

 

/*
 * 배열과 List 동일한 개념
 * 배열은 크기를 변경할 수 없다.(새로운 배열 생성후 데이터 복사 작업이 필요)
 * 비순차적인 데이터의 추가 또는 삭제에 시간이 많이 걸림
 * 
 * ==> 배열의 개선 : List(ArrayList 내부적으로는 배열의 동작방식과 똑같이 돌아감)
 * 
 * 
 * LinkedList
 * -ArrayList 단점 보완
 * 
 *  읽기(접근시간) 추가/삭제 비고
 *  ArrayList 빠르다 느리다 순차적인 추가/삭제는 더 빠름 , 비효율적 메모리 사용
 *  LinkedList 느리다 빠르다 데이터가 많을수록 접근성이 좋음
 */  

 

List 연습 예제

public class ListEx1 {

	public static void main(String[] args) {
		List<Integer> list = new ArrayList<>();
		ArrayList<String> list2 = new ArrayList<>();
		
		System.out.println(""+list.size()); // 배열의 length 같은개념
		System.out.println(""+list.isEmpty()); // boolean 값
		
		//add() : 요소 추가
		list.add(1);
		list.add(2);
		list.add(3);
		list.add(4);
		list.add(5);
		
		list2.add("자바");
		list2.add("html");
		list2.add("script");
		list2.add("서블릿");
		
		System.out.println(list);
		System.out.println(list2);
		
		//추가할 내용이 없다면
		String fruits[] = {"사과" , "포도","멜론"};
		List<String> list3 = Arrays.asList(fruits);
		System.out.println(list3);
		//추가할 내용이 있다면
		List<String> list4 = new ArrayList<>(Arrays.asList(fruits));
		list4.add("참외");
		list4.add("딸기");
		
		System.out.println(list4);
		
        	//추가할 내용이 없다면
		String fruits[] = {"사과" , "포도","멜론"};
		List<String> list3 = Arrays.asList(fruits);
		System.out.println(list3);
		//추가할 내용이 있다면
		List<String> list4 = new ArrayList<>(Arrays.asList(fruits));
		list4.add("참외");
		list4.add("딸기");
		
		System.out.println(list4);
		
		//add(int index, 요소)
		list.add(3,6); //3번자리 6추가(기준수 뒤로 밀림)
		System.out.println(list);
		
		//set()
		list.set(3, 7); //3번자리 7로 바꿈
		System.out.println(list);
		
		//remove()
		list2.remove(0); //0번자리 값 삭제
		System.out.println(list2);
		
		list4.remove("사과"); // "사과" 삭제
		System.out.println(list4);
		
		//get()
		System.out.println(list4.get(2)); // 특정위치 요소 불러오기
		
		//indexof()
		System.out.println(list2.indexOf("서블릿")); // 요소의 위치 불러오기
		
		//sort
		Collections.sort(list); // 오름차순
		System.out.println(list);
		
		//Comparator.naturalOrder(): 오름차순  Comparator.reverseOrder(): 내림차순
		list.sort(Comparator.reverseOrder());
		System.out.println(list);
		
		
	}

}

 

728x90
반응형

'개발 > K-DigitalTraining 수강중' 카테고리의 다른 글

Java.io 설명과 , 예시  (0) 2023.03.14
Java Map interface  (0) 2023.03.13
Java LocalDate  (0) 2023.03.10
Java SimpleDateFormat  (0) 2023.03.10
Java Calendar  (0) 2023.03.09

댓글()

Java LocalDate

728x90
반응형
package util;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

public class LocalDateEx1 {
	public static void main(String[] args) {
		LocalDate today = LocalDate.now();
		System.out.println(LocalDate.now());
		System.out.println(LocalTime.now());
		System.out.println(LocalDateTime.now());
		
		System.out.println(today.getYear());
		System.out.println(today.getMonthValue()); // 월 1~12
		
		LocalTime time = LocalTime.now();
		System.out.println(time.getHour());
		System.out.println(time.getMinute());
		System.out.println(time.getSecond());
	}
}

Java 8 버젼 이후 가장 편하게 쓸수있는 방법

728x90
반응형

'개발 > K-DigitalTraining 수강중' 카테고리의 다른 글

Java Map interface  (0) 2023.03.13
Java Collection framework(List)  (0) 2023.03.10
Java SimpleDateFormat  (0) 2023.03.10
Java Calendar  (0) 2023.03.09
3/9 자바수업 (K-digital training)  (0) 2023.03.09

댓글()

Java SimpleDateFormat

728x90
반응형
package util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/* 형식화 클래스
 * java.text 패키지
 *  소수점, 콤마..
 *  
 */


public class SimpleDateFormatEx1 {
	public static void main(String[] args) {
		
		Date date = new Date();
		System.out.println(date);		
		
		SimpleDateFormat sdf = new SimpleDateFormat();
		System.out.println(sdf.format(date));	
				
		SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy년 MM월 dd일 E요일 a HH:mm:ss");
		System.out.println(sdf2.format(date));
		// y : 년도, M : 월, d : 일, h : 시, m : 분, s : 초, H : 24시간제 시, a : 오전/오후
		
		SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy년 MM월 dd일");
		SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy/MM/dd");
		
		// 예외 exception - 컴파일 예외
		try {
			// parse() 날짜 데이터의 출력 형식을 변환
			Date d = sdf3.parse("2023년 03월 09일");
			System.out.println(sdf4.format(d));
		} catch (ParseException e) {			
			e.printStackTrace();
		}
	}
}
728x90
반응형

'개발 > K-DigitalTraining 수강중' 카테고리의 다른 글

Java Collection framework(List)  (0) 2023.03.10
Java LocalDate  (0) 2023.03.10
Java Calendar  (0) 2023.03.09
3/9 자바수업 (K-digital training)  (0) 2023.03.09
3/6 자바 수업 , 약간 그로기상태  (0) 2023.03.06

댓글()

3/9 자바수업 (K-digital training)

728x90
반응형

요새 진도 따라잡기에 급급하여 수업내용을 전혀 정리 하지 못했다.

 

사실 이해 안가는 부분도 많아서 적기가 어렵기도 했다.

 

어제 , 오늘 string 클래스의 기능을 알아보고 구현해보는 시간을 갖고있다.

 

그래서 이것도 chatGPT 한테 물어봤다..

 

역시나 선생님 수업내용과 거의 동일한 답을 내준다.

 

심지어 선생님 수업내용과 거의 동일한 순서다... 소오름

일단 string 의 기능들 예시를 들어 알려달라그랬더니 끝도 없이 나와서

Q. 실제 개발에 가장 많이 쓰이는 기능들 추려서 알려줘  

A. 

실제 개발을 위해 Java String 클래스의 가장 일반적으로 사용되는 기능은 특정 사용 사례에 따라 다를 수 있지만 가장 자주 사용되는 방법 중 일부는 다음과 같습니다.

  • length(): 문자열의 길이를 구하는데 사용.
  • charAt(int index): 문자열의 특정 문자에 액세스하는 데 사용됩니다.
  • substring(int beginIndex, int endIndex): 문자열의 일부를 추출하는 데 사용됩니다.
  • equals(Object obj): 두 문자열이 같은지 비교하는 데 사용됩니다.
  • contains(CharSequence s): 문자열에 특정 하위 문자열이 포함되어 있는지 확인하는 데 사용됩니다.
  • replace(CharSequence target, CharSequence replacement): 특정 하위 문자열의 모든 항목을 다른 문자열로 대체하는 데 사용됩니다.
  • toLowerCase(): 문자열을 소문자로 변환하는 데 사용됩니다.
  • toUpperCase(): 문자열을 대문자로 변환하는 데 사용됩니다.
  • trim(): 문자열에서 선행 및 후행 공백을 제거하는 데 사용됩니다.
  • split(String regex): 구분 기호를 기준으로 문자열을 부분 문자열 배열로 분할하는 데 사용됩니다.

이러한 메서드는 입력 유효성 검사, 데이터 구문 분석 및 텍스트 서식 지정과 같은 많은 일반적인 문자열 조작 작업의 기본입니다. 그러나 Java String 클래스는 특정 상황에서 활용할 수 있는 다양한 기타 유용한 메서드를 제공합니다. Java String 클래스 및 해당 기능에 익숙해지는 가장 좋은 방법은 실제 개발 시나리오에서 이를 사용하여 연습하는 것입니다.

 

예시 코드들이 전부 적혀있어 복습할때 사용하면 개꿀인것 같다.

728x90
반응형

댓글()

3/6 자바 수업 , 약간 그로기상태

728x90
반응형

며칠전 부터 클래스 상속등 조금은 바로 이해하기 힘든 개념들이 나왔는데

 

한두번 놓치다 보니 지금 하는건 전혀 이해가 안간다.

 

그래서 약간 손을 놨다. 그냥 따라치는것만 하기엔 시간이 아까워서...ㅠ

 

일단 수업중이긴 하지만 교재로 받은 ( 실제로 교재로 수업을 진행하진 않는다 )

 

Doit 자바 프로그래밍 교제를 좀 살펴보면서 진행해야겠다..ㅠㅠ

 

 

728x90
반응형

'개발 > K-DigitalTraining 수강중' 카테고리의 다른 글

Java Calendar  (0) 2023.03.09
3/9 자바수업 (K-digital training)  (0) 2023.03.09
3/2 자바 수업 (상속)  (0) 2023.03.02
3/1 공휴일.. 그것도 모른채 수업시작을 기다렸다.  (0) 2023.03.01
2/28 자바 수업  (0) 2023.02.28

댓글()

3/2 자바 수업 (상속)

728x90
반응형

1교시

 

작성한 클래스

package ch6;

public class Student2 {
	//학생이름 name 
	//반 ban 
	//번호 no
	//국어점수 kor
	//영어점수 eng
	//수학점수 math
	String name;
	int ban;
	int no;
	int kor;
	int eng;
	int math;
	
	
	public Student2(int kor, int eng, int math) {
		super();
		this.kor = kor;
		this.eng = eng;
		this.math = math;
	}

	public Student2(String name, int ban, int no) {
		super();
		this.name = name;
		this.ban = ban;
		this.no = no;
	}

	public Student2(String name, int ban, int no, 
			int kor,int eng, int math) {
		super();
		this.name = name;
		this.ban = ban;
		this.no = no;
		this.kor = kor;
		this.eng = eng;
		this.math = math;
	}
	
	int getTotal() {
		return this.kor+this.eng+this.math;
		
	}
	double getAverage() {
		return getTotal() / 3.0;
	}
	
	public Student2(String name) {
		super();
		this.name = name;
	}

	@Override
	public String toString() {
		return "Student2 [name=" + name + ", ban=" + ban + ", no=" + no + ", kor=" + kor + ", eng=" + eng + ", math="
				+ math + "]";
	}
	
	
		
}

를 이용해 학생정보 작성하기

package ch6;

import java.util.Scanner;

public class StudentEx3 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		
		System.out.println("이름: ");
		String name = sc.nextLine();
		System.out.println("반 : ");
		int ban = Integer.parseInt(sc.nextLine());
		System.out.println("번호 : ");
		int no = Integer.parseInt(sc.nextLine());
		System.out.println("국어 : ");
		int kor = Integer.parseInt(sc.nextLine());
		System.out.println("영어 : ");
		int eng = Integer.parseInt(sc.nextLine());
		System.out.println("수학 : ");
		int math = Integer.parseInt(sc.nextLine());
		
		Student2 student = new Student2(name, ban, no, kor, eng, math);
		
		System.out.println(student);

	}

}

2교시

 

package ch6;

//상품 관리

public class GoodsStock {
	//속성
	
	String code;	//상품코드
	int stockNum;	//재고수량
	//생성자를 명시하지 않으면
	//기본생성자를 생성해줌

	public GoodsStock(String code, int stockNum) {
		super();
		this.code = code;
		this.stockNum = stockNum;
	}
	
	//기능
	//재고수량 감소
	void addStock() {
		System.out.println("재고수량 증가");
	}
	
	//재고수량 증가
	void subtractStock() {
		System.out.println("재고수량 감소");
		
	}

	@Override
	public String toString() {
		return "GoodsStock [code=" + code + ", stockNum=" + stockNum + "]";
	}

}
package ch6;

import java.util.Scanner;

public class GoodStockEx2 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		
//		System.out.println("코드를 입력해주세요>>");
//		String code = sc.nextLine();
//		System.out.println("재고수량 입력해주세요>>");
//		int stockNum =Integer.parseInt(sc.nextLine());
//		
//		GoodsStock stock = new GoodsStock(code, stockNum);
//		System.out.println(stock);
		
		//3개의 상품에 대해서 인스턴스를 생성해야 한다면?
		
		GoodsStock[] goods = new GoodsStock[3];
		for (int i = 0; i < goods.length; i++) {
			System.out.println("코드를 입력해주세요>>");
			String code = sc.nextLine();
			System.out.println("재고수량 입력해주세요>>");
			int stockNum =Integer.parseInt(sc.nextLine());
			goods[i] = new GoodsStock(code, stockNum);
			System.out.println("-----------------------");
		}
		for (int i = 0; i < goods.length; i++) {
			System.out.println(goods[i]);
		}
		
		
		
	}

}

며칠째 같은내용을 반복해서 하니 졸리다...

기초가 중요하다곤 하지만 이렇게 공부하는게 맞는걸까..? 하면할수록 그냥 귀찮다는 생각밖에 안든다.

 


3교시

 

/* 상속
 * 기존의 클래스를 재사용하여 새로운 클래스를 작성
 * 상성 장점
 * 1)적은 양의 코드로 새로운 클래스를 작성할 수 있음
 * 2)코드를 공통적으로 관리하기 때문에 추가 및 변경이 용이함
 * 
 * extends : 상속을 표현
 * 
 * 상속대상
 * 1)자손 클래스는 조상 클래스의 모든 멤버를 상송받음 (단, 생성자와 초기화 블럭은 상속 안됨)
 * 2)자손 클래스의 멤버 개수는 조상 클래스보다 항상 같거나 많음- 
 */

 

 


4교시

package inheritense;

public class Tv {
	boolean power;
	int channel;
	
	void power() {
		power =! power;
		
	}
	void channelUp() {
		channel ++;
		
	}
	void channelDown() {
		channel --;
		
	}
}
package inheritense;

//Tv 클래스를 상속받은 SmartTv
public class SmartTv extends Tv {
	boolean caption;
	
	void displayCaption(String text) {
		System.out.println(text);
	}
}
package inheritense;

public class SmartTvEx1 {

	public static void main(String[] args) {
		SmartTv stv = new SmartTv();
		//상속여부 확인
		stv.channel = 10;
		stv.channelUp();
		System.out.println("현재채널" + stv.channel);
		
		stv.power();
		System.out.println("전원 상태 "+ stv.power);
		
		stv.displayCaption("Hello world");
		stv.caption = true;
		stv.displayCaption("hello world");
		
	}

}


5교시

//this() : 생성자에서 다른 생성자를 호출시
//, this.변수명 : 자기자신
//super() : 생성자에서 부모 생성자를 호출 시
//, super.변수명 : 부모


6교시

 

클래스 작성시 부모를 지정하지 않으면 최상위 부모는 Object 클래스가 존재함

이걸 만들 예정

package Exam;

public class Account {
	private String ano;
	private String owner;
	private String balance;
	
	public Account(String ano, String owner, String balance) {
		super();
		this.ano = ano;
		this.owner = owner;
		this.balance = balance;
	}

	public String getAno() {
		return ano;
	}

	public void setAno(String ano) {
		this.ano = ano;
	}

	public String getOwner() {
		return owner;
	}

	public void setOwner(String owner) {
		this.owner = owner;
	}

	public String getBalance() {
		return balance;
	}

	public void setBalance(String balance) {
		this.balance = balance;
	} 
	
	
	
}

Account 클래스 생성


6교시

7교시

8교시

9교시

 

BankApp 클래스 작성중

 

복잡하다 복잡해 @@

728x90
반응형

댓글()