정보처리기사과정

Java/Java icia 12일차

싱글톤 패턴과 getinstance 사용법

1. 싱글톤 패턴의 필요성 한 클래스를 생성하고 그 클래스의 정보성 데이터를 변수로 생성하고 관리하자 한다면 다른 클래스에서 그 클래스에 접근할때 getter 와 settter 를 사용하여 수정 후 반환하여 사용한다. 다른 클래스에서 각자 인스턴스를 생성하면 다른 클래스들끼리 이 클래스의 정보를 공유하기 어렵게 되는 문제가 생길 수 있다. 2. 싱글톤 패턴의 사용 목적 싱글톤 패턴을 사용하는 이유는 정보를 보관하고 공유하고자 하는 클래스에서 메모리를 한번만 할당하고 그 할당한 메모리에 대해 객체로 관리하기 위함이다. 이렇게 되면 여러 클래스에서 각자 정보를 보관하고 공유하고자 하는 클래스의 생성자를 호출하더라도 처음 한번 생성된 인스턴스를 반환하게 되기 때문에 정보공유차원에서의 변수 관리 , 즉 동기화에..

Java/Java icia 11일차

접근제한자 public , protected , private의 차이의 정리

접근 제한자란 말 그대로 접근 제한하기 위해 사용한다. 접근 제한자는 public , protected , default , private 4종류가 있다. public = 외부 클래스가 자유롭게 접근이 가능하다. protected : 같은 패키지나 자식 클래스(상속)에서 접근이 가능하다. default = 같은 패키지에 소속된 클래스에서만 접근이 가능하다. 별도로 설정하지 않으면 default이다. private = 선언한 클래스 내부에서만 접근이 가능하다. 정리하자면 public > protected > default > private 순으로 열려있다 기본적으로 작성하지 않으면 default이다. 1. 클래스의 접근 제한자 클래스의 접근 제한자는 public , default로 나뉜다. public 접..

Java/Java icia 11일차

static , final , final static의 차이의 정리

Static 객체 생성 없이 사용할 수 있는 필드와 메소드를 생성하고자 할때 활용한다. 사용하기 위해신 필드나 메소드 선언시 앞에 static 키워드를 붙인다 private static int number = 100; 여기에 number를 1씩 증가시키는 ++number를 사용하면 static이기 때문에 호출될때마다 101 , 102 ... 로 올라간다 만약 static이 아니라면 증가메소드가 실행할때 올라가고 다시 값을 바꾸지 않는 이상 100으로 돌아가게 된다. ( ++number 는 전치연산자이기때문에 1을 증가시키고 출력된다. number++는 후치연산자이므로 출력된 후에 1을 증가시키게 된다. ) static의 특징은 인스턴스 필드 , 메소드 , this 키워드를 사용불가하다. 인스턴스 성질은 ..

Java/Java icia 11일차

Class를 이용해 게시판 만들어보기

Class를 나누어서 작업 BoardMain , BoardDTO , BoardService , BoardRepository로 나누어서 작업을 했다. BoardMain : 컨트롤러 BoardDTO : 각 변수들 getter and setter BoardService : 호출받으면 BoardRepository에서 리스트를 받아 출력 BoardRepository : 데이터베이스 BoardDTO public class BoardDTO { // private static int number = 100; private final static DateTimeFormatter DTF = DateTimeFormatter.ofPattern("yy/MM/dd hh:mm:ss"); private String bno; priv..

Java/Java icia 11일차

DTO 의 뜻 , 사용하는 이유

DTO ( Data Transper Object ) 데이터베이스( 본문에서는 Repository ) 에 접근하기 위해 순수하게 데이터를 담아 계층 간으로 전달하는 객체이다. Main에서 Service를 호출하고 , Service는 Repository에서 값을 호출받아 출력해서 다시 Main에 호출받아져서 원하는 값으로 작동되게끔 한다. 완전히 전달 용도로 사용하기 때문에 getter setter 로직만 필요한것이다. 메소드를 이용해 전달하기 때문에 변조가 불가능하다. DTO를 사용하는 이유 ? 1. 여러개를 하나로 묶어서 클래스가 전송가능 DTO를 사용하지 않으면 각 객체마다 메소드를 따로 만들어서 보내야 하기 때문에 복잡해지기 때문에 DTO를 사용하게 되면 깔끔해진다. 2.설계당시에 변수로 받을 일이 ..

Java/Java icia 10일차

상속 , 오버라이드 , 클래스를 이용하여 학교시스템 만들기

학교시스템을 만들어보기 1. 먼저 Student Class와 Teacher Class를 상속할 Person Class를 만든다. package day10_2; public class Person { private static int number = 10000; private String id; // 990416-1(male = 1 female = 2 10000 @(ramdom) ex)1100003 private String name; private char gender; private String birthday; public String getId() { return id; } public void setId() { if(!(gender == 0 || birthday == null)) { int fir..

Java/Java icia 10일차

오버라이딩 , 상속을 이용한 예제

예를 들어 정규직과 계약직 세금을 달리 떼어야 할때 추상화 메소드로 만든후에 나눌수있다. package day10_1; public abstract class Salary { int salary; public abstract void tax(); // 같은 메소드를 쓰더라도 다른 실행문구를 쓸때 추상메소드를 사용. } class 정규직 extends Salary{ @Override public void tax() { double tax = salary * 0.1 ; // 재정의 System.out.println("정규직 세금은 : "+tax); } } class 계약직 extends Salary{ @Override public void tax() { double tax = salary * 0.033 ; ..

Java/Java icia 10일차

오버라이딩 , 상속 , 추상화

추상화 추상화 == 같은 메소드를 쓰는 것들을 한 클래스에 몰아넣고 나머지 클래스는 다 상속시켜서 불필요한 코드를 줄인다. 추상클래스 와 추상메소드가 있다. 추상메소드가 1개라도 있다면 그 클래스는 추상클래스가 된다. 추상화의 표현은 abstract를 붙여서 사용한다 추상클래스 상속받는쪽이 무조건 재정의해줘야하는 클래스 추상메소드 특징 : abstract가 붙고 중가로가 없다. 실행구간은 상속받는쪽에서 재정의하기때문에 없다. //어떻게 우는지 public abstract String cry(); //어떻게 움직이는지 public abstract String move(); //무엇을 먹는지 public abstract String food(); public abstract void print(); Anim..

Java/Java icia 10일차

Java 상속 , 오버라이딩

Class 간의 상속 package day10; public class FruitMain { FruitMain이라는 메인클래스가 있을때 class Fruit{ String name; boolean isSeed; public void removeSeed() { isSeed = false; } } class Fruit2 extends Fruit{ // == Fruit2가 Fruit 클래스를 상속받겠다 //String name; //boolean isSeed; Fruit와 Fruit2는 다른 클래스지만 extends를 사용하여 메소드,변수를 같이 공유된다 String color; public void removeSeed() { isSeed = false; } public void colorChange(Stri..

swkn
'정보처리기사과정' 태그의 글 목록