일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 티스토리 블로그
- for문
- 오라클
- 전화번호부
- 백준문제풀이
- 깃허브 블로그
- 이클립스단축기
- 백준
- spring
- 이클립스
- 순환문
- ORA-01407
- 스프링
- 백준문제
- jsp
- 설정
- 공부
- 파워서플라이
- MSI
- 오류모음
- Oracle
- Ajax
- 자바
- 무결성 제약조건
- 오류
- 인터페이스
- while
- 환경설정
- 별 찍기
- ORA-02292
Archives
- Today
- Total
danDevlog
Java - day7 본문
728x90
클래스 : 붕어빵 틀. 설계도
생성자 : 새로운 자료 타입의 변수 공간을 할당해 주는 역할.
예) int a=5;// 정수형 변수 a 에 5를 할당하라.
예) PhoneInfo pi = new PhoneInfo();
// 새롭게 생성한 PhoneInfo 자료형 변수 pi에 메모리 공간 확보하라.
예) PhoneInfo pi = new PhoneInfo("이순신","1111","02.02.23");
// 새로운 타입을 만들고 그 변수를 선언한 다음에 생성자를 통해서 공간을 확보하고 값을 할당한 모습.
객체 : 설계도를 이용하여 만들어진 실체, 붕어빵
객체 생성(메모리 공간 확보) : new 클래스명()
public class PhoneBook {
String name;
public static void main(String[] args) {
PhoneBook pb = new PhoneBook();
pb.setName("hong");
System.out.println(pb.getName());
}
//메뉴 > 소스 > 제너레잇 겟터 앤 셋터
public String getName() {
return name;
}
public void setName(String name) {
//name = name;// 수정전 필드 변수에 할당 되지 않음.
//The assignment to variable name has no effect
this.name = name;// this 키워드로 필드값 초기화, 혹은 매개변수명
변경으로 구분
}
}
public class PhoneBook {
String name;
public static void main(String[] args) {
PhoneBook pb = new PhoneBook();
pb.setName("hong");
System.out.println(pb.getName());
}
// 메뉴 > 소스 > 제너레잇 겟터 앤 셋터
public String getName() {
return name;
}
public void setName(String name) {
// name = name;// 수정전 필드 변수에 할당 되지 않음.
// The assignment to variable name has no effect
this.name = name;// this 키워드로 필드값 초기화, 혹은 매개변수명 변경으로 구분
}
}
// Bus class
package test;
public class Bus {
String num;
int cnt = 0;
int money;
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public int getCnt() {
return cnt;
}
public void setCnt(int cnt) {
this.cnt = cnt;
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
public void export(int money) {
this.money += money;
}
public void cntPlus() {
this.cnt++;
}
}
// Subway class
package test;
public class Subway {
String num;
int cnt = 0;
int money;
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public int getCnt() {
return cnt;
}
public void setCnt(int cnt) {
this.cnt = cnt;
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
public void export(int money) {
this.money += money;
}
public void cntPlus() {
this.cnt++;
}
}
// Taxi class
package test;
public class Taxi {
String num;
int cnt = 0;
int money;
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public int getCnt() {
return cnt;
}
public void setCnt(int cnt) {
this.cnt = cnt;
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
public void export(int money) {
this.money += money;
}
public void cntPlus() {
this.cnt++;
}
}
// student class
package test;
public class Student {
String name;
int grade;
int money;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
// Object 객체의 시조.
public void run(Object o) {
// 지하철 인가 버스 인가?
if (o instanceof Bus) {// 어느 타입인지 확인 instanceof
// 받아온 매개변수가 버스 타입인지 확인?
System.out.println("버스를 타고 갑니다.");
((Bus) o).export(1000);
this.money -= 1000;
((Bus) o).cntPlus();
} else if (o instanceof Subway) {
System.out.println("지하철을 타고 갑니다.");
((Subway) o).export(1500);
this.money -= 1500;
((Subway) o).cntPlus();
} else if (o instanceof Taxi) {
System.out.println("택시를 타고 갑니다.");
((Taxi) o).export(5000);
this.money -= 5000;
((Taxi) o).cntPlus();
} else {
System.out.println("걸어서 갑니다.");
}
}
}
// Main class
package test;
public class Main {
public static void main(String[] args) {
Student s1 = new Student();
Student s2 = new Student();
s1.setName("hong");
s1.setGrade(1);
s1.setMoney(10000);
Bus b1 = new Bus();
b1.setNum("3번");
System.out.print(s1.getName() +"이 ");
System.out.print(b1.getNum()+" ");
s1.run(b1);
Subway sw1=new Subway();
sw1.setNum("2호선");
System.out.print(s1.getName() +"이 ");
System.out.print(sw1.getNum()+" ");
s1.run(sw1);
Taxi tx1 = new Taxi();
tx1.setNum("모범");
System.out.print(s1.getName() +"이 ");
System.out.print(tx1.getNum()+" ");
s1.run(tx1);
int a=5;
System.out.print(s1.getName() +"이 ");
s1.run(5);
System.out.println("학생의 잔액은 " + s1.getMoney());
System.out.println("버스의 수입은 " + b1.getMoney());
System.out.println("지하철의 수입은 " + sw1.getMoney());
System.out.println("택시의 수입은 " + tx1.getMoney());
System.out.println("버스의 승객은 " + b1.getCnt());
System.out.println("지하철의 승객은 " + sw1.getCnt());
System.out.println("택시의 승객은 " + tx1.getCnt());
}
}
public class Main {
public static void main(String[] args) {
Student s1=new Student();
System.out.println(s1.stuNum);
//The static field Student.stuNum should be accessed in a static
way
//스태틱 변수는 객체로 접근하지 않음.
//Student s2=new Student();
//System.out.println(Student.stuNum);
//Student s3=new Student();
//System.out.println(Student.stuNum);
//Student s4=new Student();
//System.out.println(Student.stuNum);
//Student s5=new Student();
//System.out.println(Student.stuNum);
//1 2 3 4 5
Student s2=new Student();
System.out.println(s2.stuNum);
Student s3=new Student();
System.out.println(s3.stuNum);
}
}
class Student {
//static int stuNum; // 값이 공유됨.
int stuNum;// 객체별로 새로 시작함.
public Student() {
++stuNum;
}
}
//static은 필드 변수 사용 불가.
public class Main {
int num=10;
public static void main(String[] args) {
Main m=new Main();
m.num=100;
//Cannot make a static reference to the non-static field num
//static 이 붙으면, 객체 생성 이전에 메모리에 등록됨.
//static 메소드에서 필드값 num을 사용하려면,
//객체를 생성해서 접근하거나, num도 static 처리해야 함.
}
}
//각 변수의 사용 범위.
//지역변수, 객체 변수, static 변수. 의 영역.
public class Main {
int num=10;// 멤버 변수.
static int number=100;// 객체 생성 이전에 있으므로 어디서든 편하게
사용가능하지만,
//공유라는 성격은 객체 지향에 반대 되므로 주의.
public static void main(String[] args) {
Main m=new Main();// 객체 변수.
int a=20;// 지역변수.메소드 내에서 선언하고 메소드 사용이 끝나면 소멸.
m.outPut2(20);// 일부러 다른 메소드로 전달한 경우.
System.out.println(m.num);
System.out.println(Main.number);
}
public void outPut() {
//System.out.println(a);//a cannot be resolved to a variable
//이런 변수 몰라요. // 메인 메소드에서 사용하고 사라지는 변수 이므로,
System.out.println(Main.number);
}
public void outPut2(int num5) {
System.out.println(num5);
System.out.println(Main.number);
}
}
//싱글톤
public class Main {
public static void main(String[] args) {
//싱글톤 : 객체의 공유.
//날짜와 시간.
//객체를 1개 생성하고,
//객체 생성한 것이 있니? 없으면 생성. 있으면, 그 객체의 참조 주소를
전달.
//실제 예제를 참조할때 다시 언급 하겠습니다.
}
}
//배열 사용.
public class Main {
public static void main(String[] args) {
int[] num=new int[] {1,2,3,4,5,6,7,8,9,10};
//한줄에 정수형 변수 10개를 선언하고 할당한 모습.
//배열명.length : 배열의 원소 갯수 리턴.
for(int i=0;i<num.length;i++) {
System.out.print(num[i]+" ");// 값의 접근을 위해서는
배열명[index]
}
}
}
'Java' 카테고리의 다른 글
Java - day9 (0) | 2022.02.28 |
---|---|
Java - day8(전화번호부 3단계) (1) | 2022.02.24 |
Java - day6 (0) | 2022.02.22 |
Java - day5 (0) | 2022.02.21 |
Java - day4 (0) | 2022.02.18 |
Comments