JAVA

210812_클래스(예제)

요옫 2021. 8. 12. 11:47

(예제)

public class ObjectEx1 {

 

private String sangpum;  //같은 객체내에서만 사용가능

int su;

int dan;

static String SHOPNAME="쌍용마트";

 

//static이 붙은게 클래스변수, 나머지는 인스턴스변수

 

 

public static void main(String[] args) {

 

ObjectEx1 ex1=new ObjectEx1();

 

ex1.sangpum="바나나";

ex1.su=3;

ex1.dan=1000;

 

System.out.println("상점명: "+SHOPNAME);

//같은 클래스내이기에 shopname은 클래스명 생략하고 그냥 사용가능

System.out.println("상품명: "+ex1.sangpum);

System.out.println("수량: "+ex1.su);

System.out.println("단가: "+ex1.dan);

 

//결과

상점명: 쌍용마트

상품명: 바나나

수량: 3

단가: 1000

 

 

~~~~~~~~~~~~~~~~~~~~

 

 

(예제)

class Person{

 

String name;

int age;

 

//디폴트생성자

//생성자에서의 this 연습

Person() {

this("홍길동",5);  //4번째 생성자 호출

}

Person(String name) {

this(name,15);

}

Person(int age) {

this("유재석",age);

}

Person(String name,int age) {

this.name=name;

this.age=age;

System.out.println("호출");

}

 

public void write() {

System.out.println("이름: "+name+"\t나이: "+age);

}

}

 

public class ConstEx2 {

 

public static void main(String[] args) {

 

Person p1=new Person();

Person p2=new Person("강호동");  //String name

Person p3=new Person(33);  //int age 전달하는 값

Person p4=new Person("박명수",44);

p1.write();

p2.write();

p3.write();

p4.write();

 

//결과

호출

호출

호출

호출

이름: 홍길동 나이: 5

이름: 강호동 나이: 15

이름: 유재석 나이: 33

이름: 박명수 나이: 44

 

 

 

~~~~~~~~~~~~~~~~~~~~

 

 

(예제)

 

<클래스1-Happy>

public class Happy {

 

//생성자없이도 클래스 이용 가능하게 하기

private Happy() {

System.out.println("생성자 1번");

}

 

Happy(String msg){

System.out.println("문자열 "+msg+"를 받는 생성자 2번");

}

 

public Happy(int age) {

System.out.println("숫자 "+age+"를 전달받는 생성자 3번");

}

 

public Happy(String msg,int age) {

System.out.println("문자 "+msg+"와 숫자 "+age+"를 받는 생성자 4번");

}

 

 

//생성자대신 인스턴스를 반환해주는 메서드

public static Happy getInstance() {

return new Happy();

}

 

 

<클래스2-HappyTestEx3>

public class HappyTestEx3 {

 

public static void main(String[] args) {

 

Happy happy=Happy.getInstance();

 

Happy happy1=new Happy(26);

Happy happy2=new Happy("김미라");

Happy happy3=new Happy("김숙",44);

 

//calendar

Calendar cal=Calendar.getInstance();

 

int y=cal.get(Calendar.YEAR);

int m=cal.get(Calendar.MONTH);

int d=cal.get(Calendar.DATE);

 

System.out.println("오늘날짜; "+y+"-"+m+"-"+d);

 

//결과

생성자 1번

숫자 26를 전달받는 생성자 3번

문자열 김미라를 받는 생성자 2번

문자 김숙와 숫자 44를 받는 생성자 4번

오늘날짜; 2021-7-12

 

 

~~~~~~~~~~~~~~~~~~~~

 

 

(예제)

class Apple{

 

private String name;

private int age;

public static final String ADDR="seoul";

//final은 변경 불가능하며 set과 get 만들 필요 없음

 

//set+Name  값변경하기 위해

public void setName(String name) {

this.name=name;

}

public void setAge(int age) {

this.age=age;

}

 

//->2개의 인스턴스변수를 한번에 변경해줄 메서드

public void setData(String name,int age) {

this.name=name;

this.age=age;

}

 

//get메서드 (조회목적)

public String getName() {

return name;

}

public int getAge() {

return age;

}

 

//->2개를 한번에 조회할 메서드

public void getData() {

System.out.println("이름: "+this.name+", 나이: "+this.age);

}

//안에 출력문을 담거나 두개 이상이 섞여있어서 void라고 함

//안에 담을 게 많은데 유형이 같으면 그 유형만 적어도 됨

}

 

public class ObjectMethodEx4 {

 

public static void main(String[] args) {

 

Apple app=new Apple();

//app.name="홍길동";  불가능 private은 다른 클래스이기 때문

 

//값변경

app.setName("강호동");

app.setAge(33);

 

System.out.println("이름1: "+app.getName());

System.out.println("나이1: "+app.getAge());

 

//한번에 조회,수정

Apple app2=new Apple();

app2.setData("김숙",35);

app2.getData();

 

//1번학생..각각 수정한 것도 조회가능

app.getData();

 

//결과

생성자 1번

숫자 26를 전달받는 생성자 3번

문자열 김미라를 받는 생성자 2번

문자 김숙와 숫자 44를 받는 생성자 4번

오늘날짜; 2021-7-12

 

 

~~~~~~~~~~~~~~~~~~~~

 

 

(예제)

 

<클래스1-Mycar>

 

public class Mycar {

 

private String carName;

private int price;

private String color;

 

//디폴트생성자 존재

//명시적생성자로 만들 땐 디폴트 자동생성 안 됨

 

 

//3개의 변수를 수정할 메서드 생성

public void setData(String carNAme,int price,String color) {

this.carName=carNAme;

this.price=price;

this.color=color;

}

 

//3개의 변수를 출력할 메서드 생성

public void getData() {

System.out.println("자동차명: "+this.carName);

System.out.println("차량가격: "+this.price);

System.out.println("차량색상: "+this.color);

}

 

<클래스2-QuizMycar>

public class QuizMycar {

 

public static void main(String[] args) {

 

Mycar car=new Mycar();

Mycar car2=new Mycar();

 

car.setData("그랜저", 3000, "은회색");

car2.setData("테슬라", 7000, "진주색");

 

//출력

System.out.println("[나의 현재차]");

car.getData();

 

System.out.println();  //한칸띄기위해 넣음

 

System.out.println("[나의 새차]");

car2.getData();

 

//결과

[나의 현재차]

자동차명: 그랜저

차량가격: 3000

차량색상: 은회색

 

[나의 새차]

자동차명: 테슬라

차량가격: 7000

차량색상: 진주색

 

 

~~~~~~~~~~~~~~~~~~~~

 

 

(예제)

 

<클래스1-Member>

public class Member {

 

private String name;

private String gender;

private String addr;

 

static String ban;

static int cnt=0;

 

public void setData(String name,String gender,String addr) {

this.name=name;

this.gender=gender;

this.addr=addr;

}

 

public void getData() {

cnt++;

System.out.println("[학생"+cnt+"정보]");

System.out.println("이름: "+this.name);

System.out.println("성별: "+this.gender);

System.out.println("소속반: "+ban);

System.out.println("주소: "+this.addr);

System.out.println("============");

}

 

<클래스2-QuizMember>

Member mem1=new Member();

    Member mem2=new Member();

    Member mem3=new Member();

 

mem1.setData("송혜교", "여자", "서울시 동작구");

mem2.setData("최지우", "여자", "서울시 송파구");

mem3.setData("원빈", "남자", "경기도 용인시");

 

 

Member.ban="JAVA반";

 

mem1.getData();

mem2.getData();

mem3.getData();

 

//결과

[학생1정보]

이름: 송혜교

성별: 여자

소속반: JAVA반

주소: 서울시 동작구

============

[학생2정보]

이름: 최지우

성별: 여자

소속반: JAVA반

주소: 서울시 송파구

============

[학생3정보]

이름: 원빈

성별: 남자

소속반: JAVA반

주소: 경기도 용인시

============

 

'JAVA' 카테고리의 다른 글

210812_클래스+배열  (0) 2021.08.12
210812_클래스+계산(예제)  (0) 2021.08.12
210812_클래스+this(예제)  (0) 2021.08.12
210811_ConstTestEx6까지 함  (0) 2021.08.11
210811_클래스와 객체(예제)  (0) 2021.08.11