package ch05;
public class Ch0504
{
public static void main(String[] args)
{
System.out.println(args[0]);
System.out.println(args[1]);
}
}
package ch05;
public class Ch0504
{
public static void main(String[] args)
{
System.out.println(args[0]);
System.out.println(args[1]);
}
}
package ch05;
public class Ch0503
{
//멤버변수는 값을 초기화 하지 않으면 기본값이 적용된다.
public int a;
public boolean c;
//클래스자료형 멤버변수는 값을 초기화 하지 않으면 그값은 null을 가리킨다.
public String d;
public Car e;
public Ch0503()
{
// TODO 자동 생성된 생성자 스텁
/* Car car;
car.print();*/
//위내용 안됨, 초기화를 하지 않아서..
/*int a;
int b=a+1;*/
//a초기값이 설정 안되어있어서...
//public int a.. 전역변수 설정후(멤버변수 사용시) 에러 안남..
int b=a+1;
System.out.println("각 기본값은 \n숫자형 : "+b+"\n진실은 : "+c+"\n스트링은 : "+d+"\nCar클래스 자료형 : "+e);
}
public static void main(String[] args)
{
new Ch0503();
}
}
package ch05;
public class Ch0502
{
public Ch0502()
{
// TODO 자동 생성된 생성자 스텁
//print();
}
public void print()
{
System.out.println("Hello()");
}
public static void main(String[] args)
{
//Ch0502 a = new Ch0502();
//실체가 필요없으면... 아래와 같이 표현.
new Ch0502();
//main안에서 print() 호출하려면 어떻게 해야할까요?
//main은 클래스안에 있어도 클래스안에 속해있는 존재로 보면 안된다.
//이유 : static
new Ch0502().print();
}
}
package ch05;
public class Ch0501
{
/*
* 클래스 : 설계도라 생각하며 됨다.
* 멤버변수 : 클래스에 속해있는 글로벌변수
* 멤버함수 : 클래스에 속해있는 멤버함수
* 개체 : 설계도에 입각하여 생산된 제품 즉 실체
* 인스턴스 : 생성자에 의해 초기화된 변수
* 속성 : 인스턴스개체변수안의 멤버변수를 의미
* 메서드 : 인스턴스개체변수안의 멤버함수를 의미
* */
public static void main(String[] args)
{
//개체변수의 선언
Car carA;
//개체변수의 초기화( car개체변수:인스턴스)
//개체변수 = new 클래스명() --> 자연스레 생성자 함수를 호출하게 된다.
/* 초기 생성자 함수에 name, owner
carA = new Car();
//carA : 인스턴스
carA.name ="소나타";
carA.owner="홍길동";
//carA.name : 속성
*/
carA = new Car("소나타","홍길동");
carA.print();
//carA.print() : 메소드
/* //생성자 초기화 활것
Car carC = new Car();
//name에 좋아하는 자동차 대입
carC.name = "티코";
//owner에 이름 대입
carC.owner = "아무게";
//carC멤버함수 print()호출
carC.print();*/
}
}
**** car.java ****
package ch05;
public class Car
{
//Java는 file당 한 class만 존재.(c는 여러개 가능.)
//현재는 public 용어 신경쓰지 말고...
//Car클래스의 멤버변수 owner
public String owner;
//Car클래스의 벰버변수 name
public String name;
//Car클래스의 멤버함수 print() 정의
public void print()
{
System.out.println("Owner : "+owner+", name : "+name );
}
//반환형 없는 함수이며 클래스이름과 같은 이름을
//같은 함수를 생성자함수라고 부른다.
//아래와 같은 이자없는 생성자는 프로그래머가
//지정하지 않앙도 자여스레 컴파일러가 생상자함수를
//강제로 만들어준다.
//public void Car() // 생성자 함수가 아니라 일반함수로 인식.
public Car(String name, String owner)
{
// TODO 자동 생성된 생성자 스텁
System.out.println("Car생성자 실행");
//매개변수와 멤버변수 이름이 같을때, 매개변수로 인식됨.
//name = name;
//반드시 클래스의 멤버변수를 가르킬때에는
//this.멤버변수명을 사용하여야 한다.
this.name = name;
this.owner = owner;
//생성자를 이용하여 멤버변수 조작하는 방법...이였음.
//생성후 new Mission() 객체 일일이 생성해야하므로, 미리 호출될때 생성.
mission = new Mission();
}
// Mission 클래스 추가후
//멤버변수에 사용자 정의 클래스 레퍼런스를 지정할경우
//Car클래스는 Mission클래스에 대해 소유관계를 맺는다고 한다.(집합)
public Mission mission;
}
**** Mission.java *****
package ch05;
public class Mission
{
//다중 객체 정의 설명...
public String type;
public int level;
public void print()
{
System.out.println("미션타입 : "+type+", 기어 : "+level+"단");
}
}
package ch03;
public class Work0529d
{
//4. 출력결과 : 4!
/*
* 4*3*2*1
* */
public Work0529d()
{
long result = run(10);
System.out.println("\r\n result : "+result);
}
public int run(int x)
{
int result = 1;
for(int i=x;i>=1;i--)
{
result *= i;
System.out.print(i);
if(i>1)
{
System.out.print("*");
}
else
{
System.out.print("=");
}
}
System.out.print(result);
return result;
}
public static void main(String[] args)
{
new Work0529d();
}
}
package ch03;
public class Work0529c
{
//3. 출력결과 :
/*
* int result=sum(1,10);
* 1+2+..+10. 같은결과, x가 큰경우는 하고경우만..
* System.out.println("resut : "+result);
* hint : 반복문
* */
/* 기존 방식.new Work0529c(1,10); 방식으로 바꾸기..
public Work0529c()
{
int result = sum(1,10);
System.out.print(result);
System.out.println("\r\nresut : "+result);
}
*/
public int x;
public int y;
//public Work0529c()
public Work0529c(int x, int y)
{
//기존에서 추가 ...
this.x = x;
this.y = y;
//int result = sum(1,10);
int result = sum();
System.out.print(result);
System.out.println("\r\nresut : "+result);
}
//public int sum(int x, int y)
public int sum()
{
/*if(x>y)
{
int temp = x;
x = y;
y = temp;
}*/
if(this.x>this.y)
{
int temp = this.x;
this.x = this.y;
this.y = temp;
}
int result=0;
/*do
{
result += x;
System.out.print(x);
if(x<y)
{
System.out.print("+");
}
else
{
System.out.print("=");
}
x++;
}
while(x<=y);*/
do
{
result += this.x;
System.out.print(this.x);
if(this.x<this.y)
{
System.out.print("+");
}
else
{
System.out.print("=");
}
this.x++;
}
while(this.x<=this.y);
return result;
}
public static void main(String[] args)
{
//new Work0529c();
//기존에서 생성자 매개변수 전달방식.
new Work0529c(1,10);
}
}
package ch03;
public class Work0529b
{
//2. 출력결과 : 함수써도 그만 main 그만..
/*
*
* *****
* ****
* ***
* **
* *
*
* */
public Work0529b()
{
stringLoad(5);
}
public void stringLoad(int startNum)
{
for(int i=startNum;i>0;i--)
{
for(int j=i;j>0;j--)
{
System.out.print("*");
}
System.out.print("\n");
}
}
public static void main(String[] args)
{
new Work0529b();
}
}
package ch03;
public class Work0529a
{
//1. 반복문을 사용해서 매개변수 2개사용 구구단 출력 ex)run(9,9);
/*
* http://java.sun.com
* 1. JDK가 설치되어 있어야 한다
* 2. 환경변수가 잡혀있어야 한다 p.38
*
* 퍼가야하는 폴더
* 1. c:\eclipse 전체
* 2. c:\project 폴더
* */
public Work0529a()
{
//5장 클래스 배운후.. main에서 바로 실행 구조로 바꿔라..
//run(9,9);
}
public void run(int a, int b)
{
//반복한다(1부터 a까지)
for(int i=1;i<=a;i++)
{
//반복한다(1부터 b까지)
for(int j=1;j<=b;j++)
{
System.out.println(i+"*"+j+"="+(i*j));
}
System.out.println("\n");
}
}
public static void main(String[] args)
{
//new Work0529a()
//5장 클래스 배운후.. main에서 바로 실행 구조로 바꿔라..
new Work0529a().run(9,8);
}
}
package ch03;
public class Ch0124
{
// 전역변수/지역변수
// 전역변수 class 바로아래 ...
public String x = "XYZ";
public Ch0124()
{
// TODO 자동 생성된 생성자 스텁
sayHello("Hello");
//System.out.println(a);
System.out.println("X : "+x);
}
public void sayHello(String message)
{
// { }안에서 정의되고 사용되어지며, { } 영역을 벗어나면 사용할수 없다.
// 매개변수도 지역변수.
int a = 1; // sayHello 내의 공간에서만 사용되는 지역변수
System.out.println(a);
//i는 for{} 안에서만 사용할수 있는 지역변수
for(int i=0;i<2;i++)
{
System.out.print(i);
}
}
public static void main(String[] args)
{
new Ch0124();
}
}
package ch03;
public class Ch0123
{
/*
* 자바장점 : 올라가기는 힘든데, 체계적으로 잡혀있다.
* 값반환..
* */
public int sum(int x, int y, int z)
{
int result = x+y+z;
System.out.println("x : "+x+", y : "+y+", z : "+z);
//return 2가지 의미 (값을 반환, 함수 실행종료)
return result;
}
public Ch0123()
{
// TODO 자동 생성된 생성자 스텁
//호출방법 2가지 : 값을 반환 상관없이 호출,
//sum(1,2,3);
//값을 반환
int r = sum(1,2,3);
System.out.println("r : "+r);
}
public static void main(String[] args)
{
new Ch0123();
}
}