일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 국비
- DesignPattern
- js
- 디자인패턴
- Spring
- 웹
- 패스트캠퍼스
- java
- 스프링
- 자바기본
- java기초
- 패캠챌린지
- ncs
- 자바연습문제
- String
- 자바기초
- DB
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- 리눅스
- 패스트캠퍼스후기
- 데이터베이스
- 자바예제
- 디자인
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- javabasic
- 직장인인강
- 재택근무
- linux
- 직장인자기계발
- 자바
- Today
- Total
FIF's 코딩팩토리
자바 기초 NCS교육과정(14)-클래스 본문
클래스(calss)란?
클래스를 프로그래밍적 언어로 표현하자면 어떠한 객체의 변수(valiable) , 메소드(method) 의 집합이다 표현할수있으며
현실세계에 빗대어 말하자면 동일한 속성과 행위를 수행하는 객체의 집합이다. 라고도 표현할 수 있다.
Java065_class.java
public class Java065_class { public static void main(String[] args) { Person ps; //객체선언 ps=new Person(); //객체생성 ps.name="홍길동"; ps.age=30; ps.gen='M'; System.out.printf("%s %d %c\n",ps.name,ps.age,ps.gen); ps.eat(); ps.run(); // 객체선언 및 생성 Person pn=new Person(); pn.name="이영희"; pn.age=25; pn.gen='F'; System.out.printf("%s %d %c\n", pn.name, pn.age, pn.gen); ps.eat(); ps.run(); } }

Java066_class.java
[도서관리] 제목 대출여부 칼의 노래 대출중 어두운 상점의 거리 대출가능 [객체 모델링] 객체의 특징 : 제목, 대출여부 객체의 기능 : 대출여부를 처리한다. |
class Book { String title; boolean state; String process() { if (state) { return "대출가능"; } else { return "대충 중"; } } } public class Java066_class { public static void main(String[] args) { Book bk = new Book(); bk.title = "칼의 노래"; bk.state = false; Book bs = new Book(); bs.title = "어두운 상점의 거리"; bs.state = true; System.out.printf("%s, %s\n", bk.title, bk.process()); System.out.printf("%s, %s\n", bs.title, bs.process()); }// end main() }//end class

Java067_class.java
[사각형 도형] 가로 세로 넓이를 구한다 둘레를 구한다 5 3 15 16 7 4 28 22 [객체모델링과정] 객체의 특징: 가로, 세로 객체의 기능 : 넓이를 구한다. 둘레를 구한다. [출력결과] [가로5, 세로3의 사각형] 넓이:15 둘레:16 ==================== [가로7,세로4의 사각형] 넓이:28 둘레:22 |
class Rect{ int width; //가로 int height;//세로 //넓이를 구하는 메소드 정의 int area() { return width*height; } //둘레를 구하는 메소드 정의 int grith() { return(width+height)*2; } void prn() { System.out.printf("[가로%d, 세로%d]\n", width,height); System.out.printf("넓이:%d\n",area()); System.out.printf("둘레:%d\n",grith()); } } public class Java067_class { public static void main(String[] args) { Rect t1=new Rect(); t1.width=5; t1.height=3; t1.prn(); System.out.println("=============================="); Rect t2=new Rect(); t2.width =7; t2.height =4; t2.prn(); }//end main() }// end class

Java068_class.java
메뉴명 가격 갯수 떡볶이 2000 3 김말이 500 2 오뎅 300 4 [출력결과] 메뉴명:떡볶이 가격:2000 갯수:3 메뉴금액:6000 메뉴명:김말이 가격:500 갯수:2 메뉴금액:1000 메뉴명:오뎅 가격:300 갯수:4 메뉴금액:1200 ============ 총금액:8200 |
class MenuShop { String menu; // 메뉴명 int price; // 가격 int cnt; // 갯수 // 주문메뉴 계산 int count() { return price * cnt; } public void prn() { System.out.printf("메뉴명:%s\n", menu); System.out.printf("가격:%d\n" , price); System.out.printf("갯수:%d\n" , cnt); System.out.printf("메뉴금액:%d\n\n" , count()); }// end main() }// end MenuShop public class Java068_class { public static void main(String[] args) { MenuShop m1 = new MenuShop(); m1.menu="떡볶이"; m1.price=2000; m1.cnt=3; m1.prn(); MenuShop m2 = new MenuShop(); m2.menu="김말이"; m2.price=500; m2.cnt=2; m2.prn(); MenuShop m3 = new MenuShop(); m3.menu="오뎅"; m3.price=300; m3.cnt=4; m3.prn(); System.out.println("======================"); int sum=m1.count()+m2.count()+m3.count(); System.out.printf("총금액:%d",sum); } }

Java069_variable.java
class MemberVar{ //멤버변수는 기본값을 제공한다.(JVM) byte var_byte;//0 short var_short;//0 int var_int;//0 long var_long;//0L float var_float;//0.0F double var_double; //0.0 boolean var_boolean;//false char var_char; //\u0000 int[] num; //null }//end MemberVar public class Java069_variable { public static void main(String[] args) { int num; //지역변수-기본값이 제공안됨 //System.out.printf("num:%d\n",num); MemberVar mv =new MemberVar(); System.out.printf("var_byte:%d\n",mv.var_byte);//0 System.out.printf("var_short:%d\n",mv.var_short);//0 System.out.printf("var_int:%d\n",mv.var_int);//0 System.out.printf("var_long:%d\n",mv.var_long);//0 System.out.printf("var_float:%.1f\n",mv.var_float);//0.0 System.out.printf("var_double:%.1f\n",mv.var_double);//0.0 System.out.printf("var_boolean:%b\n",mv.var_boolean);//false System.out.printf("var_char:%c\n",mv.var_char); System.out.printf("int[]:%s\n",mv.num);//null } }

Java070_constructor.java
생성자(constructor)
|
class HandPhone { // 멤버변수 String name; String number; // 생성자 HandPhone() { } HandPhone(String ne, String nb){ name=ne; number=nb; } // 메소드 void prn() { System.out.printf("%s %s\n", name, number); }// end prn() } public class Java070_constructor { public static void main(String[] args) { /* * 1. stack 영역에 4바이트 생성 * (객체변수 선언 : HandPhone ph) * 2. heap영역에 HandPhone크기만큼 메모리 생성 * (new) * 3. 멤버변수에 초기값을 할당 * (생성자 호출: HandPhone()) * 4. heap의 주소를 stack에 저장 * (=) */ HandPhone ph = new HandPhone(); ph.name="홍길동"; ph.number="010-2563-9029"; ph.prn(); HandPhone ne=new HandPhone("이영희","010-9725-8253"); ne.prn(); } }

Java071_this.java
this:메모에 생성된 자신을 의미한다.
this.멤버변수;
this.메소드();
this(); 생성자 |
class Product { String code; String pname; int cnt; public Product() { } public Product(String code, String pname, int cnt) {//3 // 멤버변수와 매개변수 이름이 같을 때 멤버변수에 this 키워드를 명시한다. this.code = code;//4 this.pname = pname;//5 this.cnt = cnt;//6 }//7 public void prn() {//9 System.out.printf("%s %s %d\n", code, pname, cnt);//10 }//11 public void call() { // prn() this.prn(); } }// end Product public class Java071_this { public static void main(String[] args) {//1 Product pt = new Product("a001", "육류", 2);//2 pt.prn();//8 }//12 }

Java072_this.java
class Employees { String name; String dept; int salary; public Employees() { this("홍길동", "보류", 3000); } public Employees(String name, String dept, int salary) { this.name = name; this.dept = dept; this.salary = salary; } public void prn() { System.out.printf("%s %s %d\n", name, dept, salary); } } public class Java072_this { public static void main(String[] args) { Employees emp = new Employees("용팔이", "기획", 5000); emp.prn(); Employees emp2 = new Employees(); emp2.prn(); } }

Java073_class.java
class Song { String title; String artist; String album; String[] composer; int year; int track; public Song() { } public Song(String title, String artist, String album, String[] composer, int year, int track) { this.title = title; this.artist = artist; this.album = album; this.composer = composer; this.year = year; this.track = track; } public void show() { System.out.println("[실행결과]"); System.out.printf("노재 제목:%s\n", title); System.out.printf("가수:%s\n", artist); System.out.printf("앨범:%s\n", album); System.out.print("작곡가:"); for (int i = 0; i < composer.length; i++) { char chk=i<composer.length-1 ? ',':'\n'; System.out.printf("%s%c ",composer[i],chk); /*if (i < composer.length - 1) {System.out.printf("작곡가:%s, ", composer[i]); } else {System.out.printf("%s\n", composer[i]); }*/ } System.out.printf("년도:%d\n", year); System.out.printf("트랙 번호:%d\n", track); } }// end song public class Java073_class { public static void main(String[] args) { Song s = new Song("Dansing Queen", "ABBA", "Arrival", new String[] { "Benny Anderson", "Bjorn Ulvaeus" }, 1977, 2); s.show(); }// end main() }// end class

Java074_class.java
class Goods { String name; int price; int numberOfStock; int sold; public Goods() { } public Goods(String name, int price, int numberOfStock, int sold) { this.name = name; this.price = price; this.numberOfStock = numberOfStock; this.sold = sold; } public void prn() { System.out.printf("%-14s %8d %5d %5d\n", name, price, numberOfStock, sold); } }// end Goods public class Java074_class { public static void main(String[] args) { /*Goods g1 = new Goods("nikon", 400000, 30, 50); Goods g2 = new Goods("bbbb", 100000, 10, 40); Goods g3 = new Goods("ccc", 600000, 60, 90); g1.prn(); g2.prn(); g3.prn();*/ Goods[] goodArray=new Goods[3]; goodArray[0]=new Goods("nikon", 400000, 30, 50); goodArray[1]=new Goods("bbbb", 100000, 10, 40); goodArray[2]=new Goods("ccc", 600000, 60, 90); /*for(int i=0;i<goodArray.length ;i++) { goodArray[i].prn(); }*/ display(goodArray); } public static void display(Goods[] goodArray) { for(int i=0;i<goodArray.length ;i++) { goodArray[i].prn(); } }//end display(); }

Java075_class.java
class Doctor { String name; // 의사명 String medical; // 진료과목 int patient; // 대기환자수 public Doctor(String name, String medical, int patient) { this.name = name; this.medical = medical; this.patient = patient; } public void prn() { System.out.printf("%s %s %d\n", name, medical, patient); } }// end Doctor public class Java075_class { public static void main(String[] args) { Doctor[] dt = new Doctor[5]; // 여기를 구현하세요////////// dt[0] = new Doctor("김병조", "외과", 39); dt[1] = new Doctor("이상만", "내과", 50); dt[2] = new Doctor("박상기", "피부과", 20); dt[3] = new Doctor("오상수", "내과", 25); dt[4] = new Doctor("윤달수", "피부과", 30); ////////////////////// search(dt, "내과"); }// end main() public static void search(Doctor[] dt, String medical) { // 여기를 구현하세요///////////// for (int i = 0; i < dt.length; i++) { if (medical == dt[i].medical) { dt[i].prn(); } } } }// end class

Java076_class.java
class Calc { int first; int second; char ope; public Calc() { } public Calc(int first, int second, char ope) { this.first = first; this.second = second; this.ope = ope; } public int process() { // 여기를 구현하세요.//////////////// /*if (ope == '+') { return first + second; } else if (ope == '-') { return first - second; } else if (ope == '*') { return first * second; } else{ return first / second; }*/ switch(ope) { case '+': return first + second; case '-': return first - second; case '*': return first * second; case '/': return first / second; } return 0; //////////////////////////////// }// end process() public void prn() { System.out.printf("%2d %c %2d = %d\n", first, ope, second, process()); }// end prn() }// end Calc public class Java076_class { public static void main(String[] args) { Calc[] nfo = null; // 여기를 구현하세요///////////// nfo=new Calc[2]; nfo[0]=new Calc(10,5,'+'); nfo[1]=new Calc(3,2,'*'); ///////////////////// display(nfo); }// end main( ) public static void display(Calc[] nfo) { for (int i = 0; i < nfo.length; i++) { nfo[i].prn(); } }// end display() }// end class

Java077_class.java
class Insurance { String code; // 상품코드 String name; // 상품명 String type; // 상품종류 int payment; // 납입보험료 public Insurance() { } public Insurance(String code, String name, String type, int payment) { this.code = code; this.name = name; this.type = type; this.payment = payment; } public void prn() { System.out.printf("%s %s %s %d\n", code, name, type, payment); } }// end Insurance public class Java077_class { public static void main(String[] args) { String search = "손해보험"; Insurance[] is = new Insurance[4]; is[0] = new Insurance("a001", "생명보험", "자동차보험", 30000); is[1] = new Insurance("a002", "생명보험", "운전자보험", 20000); is[2] = new Insurance("b001", "손해보험", "화재보험", 15000); is[3] = new Insurance("b002", "손해보험", "해상보험", 25000); int sum = process(is, search); totalPrice(sum, search); }// end main( ) public static int process(Insurance[] is, String name) { // 여기를 구현하세요//////////////// int tot=0; for (int i = 0; i < is.length; i++) { if (name == is[i].name) { tot += is[i].payment; } } return tot; }// end process( ) public static void totalPrice(int sum, String name) { System.out.printf("%s 총납입액은 %d원 입니다.\n", name, sum); } }// end class

Java078_class.java
class CreditCard { String cardName; String cardNum; int pay; public CreditCard() { } public CreditCard(String cardName, String cardNum, int pay) { this.cardName = cardName; this.cardNum = cardNum; this.pay = pay; } public void prn() { System.out.printf("%s %s %d\n", cardName, cardNum, pay); } }// end CreditCard public class Java078_class { public static void main(String[] args) { /// [출력결과]를 참조하여 구현하시요///////////////// CreditCard[] cd = new CreditCard[3]; cd[0] = new CreditCard("기업은행", "42523-52325", 100000); cd[1] = new CreditCard("하나은행", "52253-22623", 153000); cd[2] = new CreditCard("신한은행", "16239-95235", 256000); int sum = 0; for (int i = 0; i < cd.length; i++) { cd[i].prn(); sum += cd[i].pay; } System.out.println("총납입액:" + sum); }// end main() }// end class

Java073_overloading.java
오버로딩(overloading)
(즉 리턴 타입은 오버로딩을 구현하는데 아무런 영향을 주지 않는다.) |
class Calculator { void addValue(int x, int y) { System.out.println(x + y); } void addValue(int x, int y, int z) { System.out.println(x + y + z); } double addValue(double x, double y) { /* System.out.println(x+y); */ return x + y; } } public class Java079_overloading { public static void main(String[] args) { Calculator cal = new Calculator(); cal.addValue(4, 8); cal.addValue(2, 7, 5); System.out.println(cal.addValue(1.0, 2.0)); } }

Java080_varg.java
variable argument(가변매개변수)
|
class CountVarg { void addValue(int... arr) { int sum = 0; for (int i = 0; i < arr.length; i++) sum += arr[i]; System.out.println(sum); } //고정 매개변수와 가변매개변수가 같이 사용될때는 언제나 고정 매개변수를 먼저 선언한다. void sumValue(String name,int...arr) { int sum=0; for(int i=0;i<arr.length;i++) { sum+=arr[i]; } System.out.printf("name=%s sum=%d\n",name,sum); } } public class Java080_varg { public static void main(String[] args) { CountVarg cv=new CountVarg(); cv.addValue(4,8); cv.addValue(2,3,9); cv.addValue(5,2,3,9); cv.sumValue("홍길동",70,80,65); cv.sumValue("길동",70,80,65,12,81,9,4); } }

Java081_for.java
public class Java081_for { public static void main(String[] args) { int[] num = { 10, 20, 30, 40, 50 }; for(int i=0; i<num.length;i++) System.out.println(num[i]); System.out.println("=========================="); /* * 개선된 루프=확장된루프=개선된 for문 * for (데이터타입 변수= 배열 or 컬레션){ * 수행할 문장; * } */ for(int data : num) {//배열이나 컬렉션 System.out.println(data); } } }

Java082_for.java
class Employee { String name; int salary; public Employee() { } public Employee(String name, int salary) { this.name = name; this.salary = salary; } public void prn() { System.out.printf("%s %d\n", name, salary); } } public class Java082_for { public static void main(String[] args) { Employee[] emp = new Employee[2]; emp[0] = new Employee("John", 5000); emp[1] = new Employee("Steven", 8000); for (int i = 0; i < emp.length; i++) { /*emp[i].prn();*/ System.out.printf("%s %d\n",emp[i].name,emp[i].salary); } for(Employee data:emp) data.prn(); } }

Java083_static.java
[프로그램 실행과정] 1. 소스 코드 작성 Java083_static.java
2. 컴파일(클래스 파일생성) javac Java083_static.java (자바 바이트 코드)
2. heap area : 객체(인스턴스)가 생성되는 공간. new키워드에
3. method area : 클래스 정보와 클래스 변수(static)가 저장되는 곳
|
class StaticEx{ int x=5; static int y=10; public StaticEx() { } void prn() { System.out.printf("%2d %2d\n",x,y); } } public class Java083_static { public static void main(String[] args) { System.out.printf("StaticEx.y=%d\n",StaticEx.y); StaticEx se=new StaticEx(); System.out.printf("se.x=%d se.y=%d\n",se.x,se.y); StaticEx ss=new StaticEx(); System.out.printf("ss.x=%d ss.y=%d\n",ss.x,ss.y); se.x=20; se.y=30; System.out.printf("se.x=%d se.y=%d\n",se.x,se.y); System.out.printf("ss.x=%d ss.y=%d\n",ss.x,ss.y); } }

Java084_static.java
static 사용방법 class 클래스명{ |
class OrderStatic{ static { System.out.println("static"); } public OrderStatic() { System.out.println("constructor"); } public void prn() { System.out.println("method"); } } public class Java084_static { public static void main(String[] args) { OrderStatic st=null; st=new OrderStatic(); st.prn(); } }

Java085_static.java
public class Java085_static { public static void display() { System.out.println("display"); } public void process() { System.out.println("process"); } public static void main(String[] args) { display(); /* static이 선언된 메소드에서는 비 - static자원(멤버변수, 메소드) * 를 호출할 수 없다. */ //process(); Java085_static js=new Java085_static(); js.process(); } }

Java086_main.java
public class Java086_main { public static void main(String[] args) { /*System.out.println(args[0]); System.out.println(args[1]);*/ for(String data : args) System.out.println(data); } }

'Back-End > 국비 NCS교과과정' 카테고리의 다른 글
자바 기초 NCS교육과정(16)-접근제어자 (0) | 2019.07.30 |
---|---|
자바 기초 NCS교육과정(15)-클래스 문제풀이 (0) | 2019.07.29 |
자바 기초 NCS교육과정(13)-메소드 문제풀이 (0) | 2019.07.10 |
자바 기초 NCS교육과정(12)-메소드 (0) | 2019.07.09 |
자바 기초 NCS교육과정(11)-배열 문제풀이 (0) | 2019.07.09 |