(예제)
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 |