23.12.24 삭제예정/자바 19

리팩토링

리팩토링이란? 리팩토링은 기존의 코드를 외부의 동작방식에는 변화없이 내부 구조를 변경해서 재구성하는 작업 또는 기술을 말한다. 리팩토링을 하면 코드 내부의 설계가 개선되어 코드를 이해하기가 더 편해지고, 변화에 효율적으로 대응할 수 있다. 결국 생산성은 올라가고, 코드의 품질은 높아지며, 유지보수하기 용이해지고, 견고하면서도 유연한 제품을 개발할 수 있다. 리팩토링은 절실히 필요한 코드의 특징을 나쁜 냄새라고 부르기도 한다. 대표적으로, 중복된 코드는 매우 흔하게 발견되는 나쁜 냄새다. 이런 코드는 적절한 리팩토링 방법을 적용해 나쁜 냄새를 제거해 줘야 한다. 리팩토링은 개발자가 지관적으로 수행할 수 있긴 하지만, 본격적으로 적용하자면 학습과 훈련이 필요하다. 나쁜 냄새에는 어떤 종류가 있고, 그에 따른..

자바의 역사

★ 자바의 역사 자바는 마이크로시스템즈에서 개발하여 1996년 1월에 공식적으로 발표한 객체지향형 프로그래밍 언어이다. 자바의 가장 중요한 특징은 운영체제에 독립적이라는 것이다. 자바로 작성된 프로그래밍은 운영체제의 종류에 상관없이 실행이 가능하다. 자바는 풍부한 라이브러리를 통해 프로그래밍에 필요한 요소들을 기본적으로 제공한다. 자바의 역사는 제임스고슬링 1991년 썬의 엔지니어들이 의해서 고안된 오크라는 언어에서 시작이 되었다. 자바의 특징운영체제의 독립적이다. 자바로 작성된 프로그램은 운영체제와 하드웨어에 상관없이 실행 가능하며, 이것이 한번 작성이 되면 어디서나 실행이 된다. 객체지향적인 언어이다. 자바는 프로그래밍의 대세로 자리 잡은 객체지향 프로그래밍 언어 중의 하나로 객체지향개념의 특징인 상..

★★★ 생성자 응용

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103package Extends; class DeckTest { public static void main(String args[]) { Deck d = new Deck(); // 카드 한 벌(Deck)을 만든다. Card c = d.pick(0); // 섞기 전에 제일 위의 카드를 뽑는다. System.out.println(c); d.shuffle();..

★★ 상속 extends에 관하여

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253package Extends; class Tv { boolean power; // 전원상태(on/off) int channel; // 채널 void power() { power = !power; } void channelUp() { ++channel; } void channelDown() { --channel; }} class CaptionTv extends Tv { boolean caption; // 캡션상태(on/off) void displayCaption(String text) { if (caption) { // 캡션 상태가 o..

★★★변수의 초기화★★★

변수를 선언하고 처음으로 값을 저장하는 것을 변수의 초기화라고 한다. 변수의 초기화는 경우에 따라서는 필수적이기도 하고 선택적이기도 하지만, 가능하면 선언과 동시에 적절한 값으로 초기화 하는 것이 바람직하다. 멤버변수는 초기화를 하지 않아도 자동적으로 변수의 자료향에 맞는 기본값으로 초기화가 이루어지므로 초기화를 하지 않고 사용해도 되지만 지역변수는 사용하기 전에 반드시 초기화를 해야 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 class InitTest { int x;

★★this 생성자 개인적으로 연습해서 만든것

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 package Mon; //Student_DB 학생DB를 통한 this 생성자의 연습 this 다른 생성자를 부를 때 사용하는 말 class Stu { String level;//대학교 1학년부터 4학년을 위해 표시 protected int DB_Number;//학생들 마다 DB고유넘버 String major;//주요 전공을 의미 String professor;//각 전공별 주요교수를 의미 //인스턴스 초기화를 위해 생성자를 만든다. //생성자는 클래스의 이름과..

★★다른 생성자를 호출하는 방법★★

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 package Mon; import com.sun.xml.internal.ws.api.ha.StickyFeature; import java.util.SplittableRandom; class Car { String color; //색상 String gearType; //변속기종류-auto(자동),manual(수동) int door; //문의 개수 // ★★★생성자에서 다른 생성자를 호출하는 방법 // 생성자는 다른 생성자를 호출할수가 있으며 그방..

★★★★생성자 올바로 알기★★★★

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960package Fri; class Car { String color; String gearType; int door; Car() {//매개변수가 없는 생성자 생성자의 이름은 클래스이 이름과 같아야함 }//생성자는 인스턴스의 초기화작업에 사용된다. //무조건 하나의 생성자는 만들어야 하기 때문에 기본 생성자를 하나 만들었다. 기본 생성자의 경우 클래스의 이름과 똑같이 만들면 된다. //c1이 호출되는 구조 1. 최초 Main이 호출이 된다. 2. Main은 Method Area라도 불리며 프로그램 실행 중 어떤..

생성자에 대해 자세히 설명!!

★ 생성자란? 생성자는 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드이이다. 생성자 역시 메서드처럼 클래스 내에 선언되며, 구조도 메서드와 유사하지만 리턴값이 없다는 점이 다르다. 그렇다고 해서 생성자 앞에 리턴값이 없음을 뜻하는 키워드 void를 사용하지는 않고, 단지 아무 것도 적지 않는다. 생성자의 조건은 다음과 같다. 1. 생성자의 이름은 클래스의 이름과 같아야 한다. 2. 생성자는 리턴 값이 없다. 생성자도 오버로딩이 가능하므로 하나의 클래스에 여러 개의 생성자가 있을 수 있다. 생성자는 다음과 같이 정의 한다. 클래스 이름(타입 변수명, 타입 변수명...){ 인스턴스 생성시 수행될 코드, 주로 인스턴스멤버의 초기화 코드를 적는다 } 예) class Card{ Card(){//매개변수가 ..

★ 변수와 메서드

3.1 선언위치에 따른 변수의 종류 변수는 클래스변수, 인트턴스변수, 지역변수 모두 세 종류가 있다. 변수의 종류를 결정 짓는 중요한 요소는 변수의 선언된 위치이므로, 변수의 종류를 파악하기 위해서는 변수가 어느 영역에 선언되었는지를 확인하는 것이 중요하다. 멤버변수를 제외한 나머지 변수들은 모두 지역변수이며, 멤버변수 중 static이 붙은것은 클래스 변수, 붙지 않는 것은 인스턴스 변수라고 불리운다. 아래의 그림에는 모두 3개의 int 형 변수가 선언되어 있는데, iv와 cv는 클래스 영역에 선언되어 있으므로 멤버변수이다. 그 중 cv는 키워드 static과 함께 선언되어 있으므로 클래스변수이며 iv는 인스턴스변수이다. 그리고 lv는 메서드인 method()의 내부, 즉 메서드 영역에 선언되어 있으므..