본문 바로가기

Java

(14)
8. 추상 클래스와 인터페이스, 내부 클래스 추상 메소드(함수)와 추상 클래스 추상의 개념은 이력서와 같다고 할 수 있다. 이력서를 작성할 때, 내가 아무리 스펙이 다양하더라도 이력서에서 정해준 내용만 기입해야 한다. 추상 메소드는 이력서처럼 틀을 정해두고, 구체적인 내용을 비워놓아 상속받기 위한 클래스에서는 비어있는 내용을 구체적으로 작성하여 구현해서 사용해야 한다. 추상메소드는 제어자 'abstract'를 붙여서 선언하고, 구체적인 내용이 없으면 내용인 중괄호({ })를 생략하고 세미콜론을 붙인다. 형태는 다음과 같다. abstract void methodA( ); 추상클래스는 추상메소드를 멤버로 가지는 클래스로 메소드가 추상이면 클래스도 추상으로 선언해줘야 한다. 형태는 다음과 같다. abstract class Cellphone { abstr..
선풍기 (스레드) 오늘 코드를 검사 맡고, 전에 코드는 실질적인 타이머 기능이 없어서 스레드를 사용해서 구현하도록 조언을 받았다. 그래서 Timer부분은 클래스로 따로 빼서 스레드를 상속받아 구현하였다. package Team3; import java.util.Scanner; //싱글턴으로 기능구현 public class Single_Fan_Thread{ static Single_Fan_Thread fan_s = new Single_Fan_Thread();//싱글턴 패턴 선언 Single_Fan_Thread getInstance() // 싱글턴 패턴 주소로 반환 { return fan_s; } //사용할 전역변수 선언 boolean fan_power; String led = "빨강"; int dan = 1; int ang..
7. 상속과 다형성 지금부터 다루는 내용은 2~6단원의 충분한 이해를 바탕으로 접근해야 쉽게 이해가 된다. 상속의 정의 상속은 새 클래스를 작성할 때, 기존에 존재하는 클래스에서 멤버를 물려받아 생성하는 행위이다. 이때, 물려주는 쪽을 부모 클래스, 물려받는 쪽을 자식 클래스라고 하고, 자식은 부모에게 상속받는다고 한다. 이렇게 작성하게 되면 사용할 코드의 양이 줄어드는 효과가 있다. 상속의 형태는 다음과 같다 Class A{} Class B extends A {} 이때 부모 클래스는 A가 되고, 자식 클래스는 B가 됩니다. 자식 클래스는 부모 클래스의 함수나 변수를 그대로 가져와서 사용할 수 있지만, 부모는 자식에서 만들어진 변수나 함수를 사용할 수 없다. 또한, 자식이 상속을 받을 때, 부모의 생성자는 상속되지 않는다...
선풍기 (싱글턴) 학원에서 class들로만 구성했던 선풍기를 싱글턴 방식으로 다시 만들어 보았다. 싱글턴은 쉽게 생각해서 클래스 안에서 자기자신을 다시 사용하도록 설정한다. package Single_ton_test; import java.util.Scanner; //싱글턴으로 기능구현 public class Single_Fan { private static Single_Fan fan_s = new Single_Fan();//싱글턴 패턴 선언 Single_Fan getInstance() // 싱글턴 패턴 주소로 반환 { return fan_s; } //사용할 전역변수 선언 boolean fan_power; String led = "빨강"; int dan = 1; int ang = 90; int time = 0; //문자열..
선풍기 일부러 팀원에게 class를 설명하기 위해 기능들을 하드하게 쪼갰다. 다음 코드는 싱글턴 패턴을 사용해서 이 코드를 수정하겠다. import java.util.Scanner; //[LED 선풍기] //색상변경, 타이머설정 , 회전각도 설정 , 풍속조절(함수로 1단부터 4단), 전원 기능 구현 class Fan_set { boolean fan_power = false;//선풍기 전원 기본값 false로 설정 int dan = 1; static int ang = 90; int tim = 0; } class LED//선풍기 LED색상 선택 { String led = "빨강"; LED(){}//기본 생성자 LED(String led)//생성자 { this.led = led; } } class Power//켜고 ..
6. 클래스 객체지향 언어 자바는 객체지향 언어로서 다음과 같은 특징을 가진다. 1. 코드의 재사용성 - 새 코드를 작성할 때 기존 코드를 사용하여 코딩하여 코드수를 줄이고 유지보수가 용이해지도록 한다. 2. 신뢰성 - 제어자와 메소드를 사용하여 데이터를 보호 및 코드 중복제거를 하여 오동작을 예방한다. 3. 코드관리의 편리함 - 객체지향은 각각이 연결되어 있어 유지보수에 있어 한부분을 변경하면 전체가 수정된다. 그래서 코드유지보수성이 좋다. 클래스와 객체 클래스는 변수와 함수로 이루어져 있는 설계도와 같은 역할을 수행한다. 인스턴스는 위에 정의한 클래스(설계도)를 통해 만들어진 형태입니다. 클래스는 생성해도 메모리(RAM)상에 존재하지 않지만, 인스턴스로 구현되는 순간부터 존재한다고 할 수 있다. 클래스로 인스턴스..
함수를 사용하여 사칙연산 계산기 만들기 사용자에게 값 2개와 사칙연산 기호를 받아와서 함수를 사용하여 계산하는 계산기를 만들었다. package march; import java.util.Scanner; //계산기 만들기 public class Calc_final { //함수생성 int calculator(int first,String oper,int second) { int cal_result = 0;// 계산결과 while(true) { //플러스, 마이너스 기호 호출 switch(oper) { case "+" : cal_result = (first + second); break; case "-" : cal_result = (first - second); break; case "*" : cal_result = (first * second)..
2022 대선 투표 프로그램 대선 기념으로 투표 프로그램을 제작하였다. 당선 1인은 쉽게 뽑았는데 동률일 때 2명이상의 후보자가 나오는 부분이 어려워서 같은 학원 형에게 도움을 받았다. package march; import java.util.Scanner; public class vote_counter_1_3 { //표수, 동률 뽑아오는 최종버전 static String[][] dn = {{" 이재명","0"},{" 윤석열","0"},{" 심상정","0"},{" 안철수","0"},{,}};//2차원배열에 후보 이름과 표를 저장(string으로 저장됨) String duece = "";//후보(들)가 들어가는 부분 String vote_cheker(int vote_can) { int top = Integer.parseInt(dn[0..