반응형
package work;
public class Item {
// - 상품번호(no), 상품명(name), 가격(price)을 변수로 가지는 클래스(Item 클래스)를 정의하세요.
// - 기본 생성자를 정의하세요
// - 상품번호, 상품명, 가격을 전달받아서 생성된 객체의 변수를 초기화하는 생성자를 정ㅇ의하세요.
// - 상품정보(상품번호, 상품명, 가격)를 화면에 표시하는 display() 메소드를 정의하세요.
int no;
String name;
int price;
public Item(){}
public Item( int no, String name, int price){
this. no = no;
this. name = name;
this. price = price;
}
public void display(){
System. out.println( "번호:" + no + "\t이름:" + name + "\t가격:" + price );
}
}
package work;
import java.util.Scanner;
public class ItemDemo {
public static void main(String[] args){
// ItemDemo를 정의하세요.
// - 상품번호, 상품명, 가격을 키보드로 입력받으세요.
// - 위에서 정의한 Item객체를 생성해서 입력받은 값을 담으세요, 값을 담을 때는 생성자를 활용하세요
// - 생성된 객체의 display()를실행시켜서 입력된 값을 화면에 표시하세요.
int no, price;
String name;
Scanner s = new Scanner(System. in);
System. out.print( "번호 입력 : " );
no = s.nextInt();
System. out.print( "이름 입력 : " );
name = s.next();
System. out.print( "가격 입력 : " );
price = s.nextInt();
Item i = new Item( no, name, price);
i.display();
s.close();
}
}
order.txt
123, iphone,600000
134, ipad,800000
156,galaxy,79000
package work;
import java.io.File;
import java.util.Scanner;
public class Order {
public static void main(String[] args) throws Exception{
Scanner s = new Scanner( new File("src/lang/order.txt" ));
//스트링 배열 선언
//1. for문으로 돌면서 s.nextLine
//2. 돌면서 배열에 하나씩 값을 저장
//3. split함수를 통해 ,제거
// order.txt를 작성하세요.
// - 상품번호, 상품명, 가격순으로 주문정보를 입력하세요.
// 입력 예) 123, iphone,600000
// 134, ipad,800000
// 156,galaxy,79000
// - Scanner를 사용해서 order.txt 파일을 읽어옵니다.
// - 주문상품정보를 저장하기 위해 Item을 여러개 담을 수 있는 배열을 정의하시고, 파일에서 얻어온 값을 배열에 저장하세요.
// - 배열에 저장된 정보를 아래와 같이 표시하세요
//
// ========================== 주문내역 ===========================
// 상품번호 상품명 상품가격
// 123 iphone 600,000원
// 134 ipad 800,000원
// 156 galaxy 790,000원
// ===============================================================
String[] arr = new String[3];
System. out.println( "========= 주문내역 ==========" );
System. out.println( "상품번호\t상품명\t상품가격" );
for( int i=0; i<3; i++){
arr[ i] = s.nextLine();
String[] temp = arr[ i].split( ",");
for( int j=0; j< temp. length; j++){
System. out.print( temp[ j]+ "\t");
if( j==2){
System. out.print( "원");
}
}
System. out.println();
}
System. out.println( "=========================" );
}
//결과화면_______________________
// ========= 주문내역 ==========
// 상품번호 상품명 상품가격
// 123 iphone 600000 원
// 134 ipad 800000 원
// 156galaxy 79000원
// =========================
}
package beans;
import java.util.Date;
public class Book {
private int no;
private String title;
private String author;
private int price;
private String publisher;
private Date pubdate;
private String desc;
//기본 생성자정의
public Book(){}
public Book( int no, String title, String author, int price){
this. no = no;
this. title = title;
this. author = author;
this. price = price;
}
//getter와 setter를 정의힌다
//getter변수를 읽어오고 싶을때 사용
//setter변수는 변수를 할당하고싶을때
//값에 접근 자체를 제어할수 있다. private로 숨겨놓은뒤 get, set객체를 써서 제어가 가능하다.
public int getNo() {
return no;
}
public void setNo( int no) {
this. no = no;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this. title = title;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this. author = author;
}
public int getPrice() {
return price;
}
public void setPrice( int price) {
this. price = price;
}
public String getPublisher() {
return publisher;
}
public void setPublisher(String publisher) {
this. publisher = publisher;
}
public Date getPubdate() {
return pubdate;
}
public void setPubdate(Date pubdate) {
this. pubdate = pubdate;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this. desc = desc;
}
@Override
public String toString() {
return "Book [no=" + no + ", title=" + title + ", author=" + author
+ ", price=" + price + ", publisher=" + publisher
+ ", pubdate=" + pubdate + ", desc=" + desc + "]";
}
public void print(){
System. out.println( no);
System. out.println( title);
System. out.println( author);
System. out.println( price);
}
}
package beans;
import java.util.Date;
public class BookDemo {
public static void main(String[] args){
Book book = new Book();
book.setNo(123);
book.setTitle( "자바의 정석" );
book.setAuthor( "남궁 성" );
book.setPublisher( "도우출판사" );
book.setPrice(30000);
book.setDesc( "자바 강의 교제로 많이 사용되요" );
book.setPubdate( new Date());
int no = book.getNo();
String name = book.getTitle();
System. out.println( "책번호:" + no );
System. out.println( "책이름:" + name );
System. out.println( book);
}
}
package beans;
import java.util.Scanner;
public class BookDemo2 {
public static void main(String[] args){
/*책번호, 책제목, 저자, 가격을 입력받아서 Book 객체를 생성하고
* 화면에 입력된 내용을 출력하세요
* 출판일은 현재날짜로 지정하세요
*/
Scanner s = new Scanner(System. in);
System. out.println( "입력" );
Book book2 = new Book(111, "자전거 기행" , "김훈" ,15000);
book2.print();
//결과___
// 입력
// 111
// 자전거 기행
// 김훈
// 15000
}
}
package beans;
import java.io.File;
import java.util.Scanner;
public class BookDemo3 {
public static void main(String[] args) throws Exception{
Scanner s= new Scanner( new File("src/lang/book.txt" ));
Book[] books = new Book[4];
String[] arr = new String[4];
System. out.println( "=================도서정보================" );
System. out.println( "번호\t제목\t작가\t출판사\t금액" );
for( int i=0; i<4; i++){
arr[ i] = s.nextLine();
String[] temp = arr[ i].split( ",");
for( int j=0; j< temp. length; j++){
books[ i] = new Book(Integer.parseInt( temp[0]), temp[1], temp[2], temp[3],Integer. parseInt( temp[4]));
}
books[ i].print();
}
System. out.println( "======================================" );
}
//결과화면____________________________________________
// =================도서정보================
// 번호 제목 작가 출판사 금액
// 1 자바의 정석 남궁성 도우출판사 30000
// 2 수도원 기행 공지영 청우 15000
// 3 남한산성 김훈 응수출판사 20000
// 4 수학의 정석 홍성대 성지출판사 30000
// ======================================
}
package beans;
import java.io.File;
import java.util.Scanner;
public class BookFileReader {
private String filename;
public BookFileReader(String filename){
this. filename = filename;
}
//어디에 있는 파일을 읽을 지 설정
public Book[] read() throws Exception{
Book[] books = new Book[4];
Scanner s = new Scanner( new File( filename));
for( int i=0; i<4; i++){
String text = s.nextLine();
String[] items = text.split( ",");
Book book = new Book();
book.setNo(Integer. parseInt( items[0]));
book.setTitle( items[1]);
book.setAuthor( items[2]);
book.setPublisher( items[3]);
book.setPrice(Integer. parseInt( items[4]));
books[ i] = book;
}
return books;
}
}
package beans;
public class BookDemo4 {
public static void main(String[] args) throws Exception{
String datafile = "src/lang/book.txt" ;
BookFileReader r = new BookFileReader( datafile);
Book[] books = r.read();
for(Book b : books){
System. out.println( b.getTitle());
}
}
}
package oop16;
public class InnerClass {
private String name;
//특정 클래스 내부에서만 사용가능한 클래스
//클래스 내부에 정의되기 때문에
public class SubClass{ //내부클래스는 객체 생성이 안되기 때문에 많이 사용되지 않는다.
//메소드 안에서도 클래스 선언이 가능하다 불가능은 없음 하지만 사용빈도가 많지 않음
public void display(){
System. out. println( name);
}
}
}
package oop16;
public interface Click {
void running();
//한군데에서만 쓰는 클래스를 굳이 이름을 붙이지말자.
}
package oop16;
public class PowerClick implements Click {
public void running (){
System. out.println( "파워버튼이 클릭되었습니다." );
}
}
package oop16;
public class ClickDemo {
public static void main(String[] args){
PowerClick pc = new PowerClick();
pc.running();
//익명 내부 클래스
//클래스를 안만들고 전원 오프
//즉석 구현
//C:\java_study\workspace\basic\bin\oop16
//ClickDemo$1 이런식으로 $뒤에 번호가 붙는다.
//이런식으로 여러개 구현할수 있다.
//이벤트 기반의 어떠한 처리를 할때 많이 사용된다.
Click c1 = new Click() {
public void running(){
System. out.println( "파워 오프" );
}
};
c1.running();
Click c2 = new Click() {
@Override
public void running() {
// TODO Auto-generated method stub
System. out.println( "화면을 정지시킵니다." );
}
};
c2.running();
new Click(){
public void running(){
System. out.println( "화면을 회전시킵니다." );
}
}.running();
// 결과화면____________
// 파워버튼이 클릭되었습니다.
// 파워 오프
// 화면을 정지시킵니다.
// 화면을 회전시킵니다.
}
}
package beans;
import java.io.File;
import java.util.Scanner;
public class BookManager {
/**
* 지정된 제목이 포함된 책들 제공하기 serchByTitle(String
* 지정된 이름의 출판사에서 출판한 책들 제공하기
* 지정된 가격의 책들 제공하기
*/
private Book[] books = new Book[10];
public BookManager() throws Exception {
Scanner s = new Scanner( new File("src/lang/book.txt" ));
for( int i=0; i<10; i++){
String text = s.nextLine();
String[] items = text.split( ",");
Book book = new Book();
book.setNo(Integer. parseInt( items[0]));
book.setTitle( items[1]);
book.setAuthor( items[2]);
book.setPublisher( items[3]);
book.setPrice(Integer. parseInt( items[4]));
books[ i] = book;
}
}
public Book[] searchByTitle(String name){
Book[] result = new Book[10];
int cnt = 0;
for ( int i=0; i<10; i++) {
Book book = books[ i];
String title = book.getTitle();
if ( title.contains( name)) {
result[ cnt] = book;
cnt++;
}
}
return result;
}
//* 지정된 이름의 출판사에서 출판한 책들 제공하기
public Book[] searchByPublishe(String publisheName){
Book[] result = new Book[10];
int cnt = 0;
for ( int i=0; i<10; i++) {
Book book = books[ i];
String name = book.getPublisher();
if ( name.contains( publisheName)) {
result[ cnt] = book;
cnt++;
}
}
return result;
}
//*지정된 가격의 책들 제공하기
public Book[] searchByPrice( int bookprice){
Book[] result = new Book[10];
int cnt = 0;
for ( int i=0; i<10; i++) {
Book book = books[ i];
int price = book.getPrice();
if ( price == bookprice) {
result[ cnt] = book;
cnt++;
}
}
return result;
}
}
package beans;
public class BookDemo5 {
public static void main(String[] args) throws Exception{
BookManager book = new BookManager();
System. out.println( book.searchByTitle( "원피스" )[0]);
System. out.println( book.searchByPublishe( "클라라출판사" )[0]);
System. out.println( book.searchByPrice(34000)[0]);
}
//결과화면_________________________________________________________________________________________________
// Book [no=52, title=원피스, author=오다이이치로, price=75000, publisher=점프, pubdate=null, desc=null]
// Book [no=54, title=시구왕 클라라, author=크라라라, price=60000, publisher=클라라출판사, pubdate=null, desc=null]
// Book [no=21, title=언니저맘에안들죠?, author=김예원, price=34000, publisher=예원출판사, pubdate=null, desc=null]
}
1. 알파벳의 갯수를 구하세요.
hello world
캐릭터at로 특정 문자가 몇갠지
알파벳은 for문으로 돌려서 a~z출력 가능
2. 문자열을 다루는 유틸클래스(Stringutil)만들기
- 전달받은 문자열의 길이를 반환하는 메소드
- 전달받은 숫자를 세자리마다','가 들어있는 문자열로 반환하는 메소드
- 전달받은 Date를 'yyyy-mm-dd'형식의 문자열로 반환하는 메소드
- 전달받은 영문 문자열, 대소문자로 변환해서 반환하는 메소드
(반환할 문자열과 대/소문자 구분값을 전달받아야 한다.
public String changeUpperOrLower(String src, String how))
package work;
import java.text.SimpleDateFormat;
import java.util.Date;
public class StringCheck {
private String temp;
public StringCheck(){}
public StringCheck(String temp){
this. temp = temp;
}
//전달받은 문자열의 길이를 반환하는 메소드
public int StringLength(){
return temp.length();
}
// 전달받은 숫자를 세자리마다','가 들어있는 문자열로 반환하는 메소드
public String StringComma( int temp){
String result = String. format("%,d" , temp );
return result;
}
//전달받은 Date를 'yyyy -mm- dd'형식의 문자열로 반환하는 메소드
public String StringDate(Date date){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd" );
String result = sdf.format( date);
return result;
}
//전달받은 영문 문자열, 대소문자로 변환해서 반환하는 메소드
//(반환할 문자열과 대/소문자 구분값을 전달받아야 한다.
public String changeUpperOrLower(String src, String how){
String result = src;
if( how == "m"){
result = src.toUpperCase();
} else if( how == "c") {
result = src.toLowerCase();
}
return result;
}
}
package work;
import java.text.SimpleDateFormat;
import java.util.Date;
public class StringUtil {
public static void main(String[] args){
String temp = "열심히 배워서 스킬업을 많이 많이 할것입니다";
int num = 1234567891;
String minuscule = "im minuscule";
String capital = "IM CAPITAL";
StringCheck sc = new StringCheck( temp);
System. out.println( sc.StringLength());
System. out.println( sc.StringComma( num));
Date date = new Date();
System. out.println( sc.StringDate( date));
System. out.println( sc.changeUpperOrLower( minuscule, "m" ));
System. out.println( sc.changeUpperOrLower( capital, "c"));
}
}
3. order.txt 파일을 만드세요
상품번호 상품명 가격 구매수량
123,iphone, 100000,2
345,ipad,80000,1
456,galaxy,670000,2
Device 클래스를 정의하세요
번호, 상품명, 가격, 수량
getter/setter, toString() 재정의
OrderManager 클래스를 정의 하세요.
구매자이름, 상품들 String owner, Device[] devices = new Device[3];
생성자에서 order.txt를 읽이서 devices 배열에 다 담기
전체 구매상품 갯수를 계산해서 반환하는 메소드
전체 구매가격을 계산해서 반환하는 메소드
OrderManagerDemo 클래스를 정의하세요
OrderManager를 생성하고, 전체 구매상품갯수와 전체 구매가격을 표시
order.txt
123, iphone,600000,5
134, ipad,800000,4
156,galaxy,79000,7
package work;
public class Device {
// Device 클래스를 정의하세요
// 번호, 상품명, 가격, 수량
// getter/setter, toString() 재정의
// OrderManager 클래스를 정의 하세요.
private int num;
private String productname;
private int price;
private int quantity;
public Device(){}
public Device( int num, String productname, int price, int quantity){
this. num = num;
this. productname = productname;
this. price = price;
this. quantity = quantity;
}
public int allProductCount(){
int result = 0;
return result;
}
public int allProductPrice(){
int result = 0;
return result;
}
public int getNum() {
return num;
}
public void setNum( int num) {
this. num = num;
}
public String getProductname() {
return productname;
}
public void setProductname(String productname) {
this. productname = productname;
}
public int getPrice() {
return price;
}
public void setPrice( int price) {
this. price = price;
}
public int getQuantity() {
return quantity;
}
public void setQuantity( int quantity) {
this. quantity = quantity;
}
@Override
public String toString() {
return "Device [num=" + num + ", productname=" + productname
+ ", price=" + price + ", quantity=" + quantity + "]";
}
}
package work;
import java.io.File;
import java.util.Scanner;
public class OrderManager extends Device{
Device[] device = new Device[3];
public OrderManager() throws Exception{
Scanner s = new Scanner( new File("src/lang/order.txt" ));
for( int i=0; i<3; i++){
String text = s.nextLine();
String temp[] = text.split( ",");
device[ i] = new Device(Integer.parseInt( temp[0]), temp[1], Integer.parseInt( temp[2]), Integer. parseInt(temp [3]));
}
}
// 전체 구매상품 갯수를 계산해서 반환하는 메소드
public int allProductCount(){
int result = 0;
for(Device n: device){
result += n.getQuantity();
}
return result ;
}
// 전체 구매가격을 계산해서 반환하는 메소드
public int allProductPrice(){
int result = 0;
for(Device n: device){
result += n.getPrice();
}
return result;
}
}
package work;
public class OrderManagerDemo {
// OrderManagerDemo 클래스를 정의하세요
// OrderManager를 생성하고, 전체 구매상품갯수와 전체 구매가격을 표시
public static void main(String[] args) throws Exception{
Device o = new OrderManager();
System. out.println( o.allProductCount()); //전체 구매상품갯수
System. out.println( o.allProductPrice()); //전체구매가격 계싼
}
}
반응형