자바에서의 기본적인 출력 방법과 데이터 타입의 특징에 대해 정리해본다.
자바 초보도 이해할 수 있는 문장으로 구성해보자.
1. System.out.println 이해하기
자바에서는 System.out.println을 통해 다양한 데이터를 화면에 출력할 수 있다.
기본 데이터 타입부터 문자열까지, 여러 방법으로 출력하는 것이 가능하다.
class SystemOutPrintln {
public static void main(String[] args) {
System.out.println(7);
System.out.println(3.15);
System.out.println("3+5=" + 8);
System.out.println(3.15 + "는 실수입니다.");
System.out.println("3+5" + " 의 연산결과는 8입니다.");
System.out.println(3+5);
System.out.println(3+5 + " = " + 5+3);
// 문자열과 숫자가 겹칠 때의 특징! 숫자 먼저 나오면 덧셈 연산, 문자가 나오면 문자열 결합!
}
}
주요 포인트:
- 숫자, 실수, 문자열 등 다양한 데이터 타입을 출력할 수 있다.
- 문자열과 숫자가 함께 사용될 때, 숫자가 먼저 나오면 덧셈 연산이 이루어지고, 문자열이 먼저 나오면 문자열로 인식하여 결합된다.
* 데이터타입
class UseVariable { public static void main(String[] args) { int num1; num1 = 1000000000; int num2 = 2000000000; int num3 = num1 + num2; System.out.println(num1 + "+" + num2 +"=" + num3); // int형 오버플로우 발생! ( -2147483648 ~ 2147483647) } }
자료형 | 크기 | 기본값 | 표현범위 |
boolean | 1bit | FALSE | TRUE or FALSE |
char | 2byte | \u0000 | 0 ~ 65,535 |
byte | 1byte | 0 | -128 ~ 127 |
short | 2byte | 0 | -32,768 ~ 32,767 |
int | 4byte | 0 | -2,147,483,648 ~ 2,147,483,647 |
long | 8byte | 0 | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
float | 4byte | 0.0 | -3.4E38 ~ +3.4E38 |
double | 8byte | 0.0 | -1.7E308 ~ +1.7E308 |
* boolean - true, false 는 상수다! 문자열이 아님
* 부동소수점
* method
* 과제 (20130312)
함수 = 메소드
메인 메소드가 없으면 프로그램이 안 돌아간다.
그래서... 새로운 메소드를 첨가해보기~!
[ 다른 이름의 메소드 만들기 ]
public static void hiEveryone(int age) <-- 매개변수
{
System.........("좋은 아침입니다.");
System.out.println("제 나이는 " + age + "입니다.");
}
결과 -
프로그램시작 <= 메인메소드
좋은아침입니다. <= 서브메소드
제 나이는 12세 입니다,
좋은 아침입니다.
제 나이는 13세 입니다.
프로그램 끝 <= 메인메소드
1. [ 매개변수가 두 개인 형태의 메소드 ]
class Method2Param
{
public static void main(String[] args)
{
double myHeight = 175.9;
hiEveryone(12, 12.5);
hiEveryone(13, myHeight);
byEveryone();
}
안에 내용 적어서 레폿으로 제출
}
결과
제 나이는 12세 입니다.
저의 키는 12.5cm 입니다.
제 나이는 13세세 입니다.
저의 키는 175.9cm 입니다.
다음에 뵙겠습니다.
***********************************************************************************
class Method2Param { public static void main(String[] args) { double myHeight = 175.9; hiEveryone(12, 12.5); // 서브 메서드 호출 hiEveryone(13, myHeight); // 서브 메서드 호출 byEveryone(); System.exit(0); // 프로그램 종료 } public static void hiEveryone(int age, double height) { System.out.println("제 나이는 "+age+"입니다."); System.out.println("저의 키는 "+height+"cm 입니다. "); } public static void byEveryone() { System.out.println("다음에 뵙겠습니다."); } }
2. 변수의 Scope rule에 대해서... 1~2page 해서 자기것으로 알려오라! 다른 사람에게 알려줄 수 있을 정도로!
int a = 1; // 전역변수
void main()
{
int a = 2; // 지역변수
printf("%d", a);
}
// 결과 2
void main()
{
int a = 0;
{
int a = 3;
printf("%d", a);
}
}
// 결과 3
void main()
{
int a = 0;
{
int a = 3;
}
printf("%d", a);}
// 결과 0
4. 정적 영역 규칙
- 블록 구조 언어 : 하향식 설계 ( 알골, 파스칼, PL/1, C, 에이다 등 )
5. 동적 영역 규칙
- 해석형 언어 : 각 변수들의 범위를 결정할 때, 호출 관계를 통해서 결정하는 규칙 ( 리스프, 스노볼 등 )
- 자바 동적 영역 규칙
public class Main{ static int p = 100; // 멤버변수 p 정적 선언 static int q = 200; // 멤버변수 q 정적 선언 public static void func(int a, int b) { // func 메소드 변수 a, b를 받는다. int p =3; // func 메소드 상수 p = q + a - b; // 변수 p 값 재선언 (메소드 내부의 값 변화 (멤버변수에 영향 x) q = p - b; // 변수 q는 함수내에 선언되어 있진 않다 -> 동적할당에 따라 멤버변수 값을 변화 (여기서 p는 메소드 내의 변수) } public static void main(String [] arcs) throws java.lang.Exception { func(5,6); // func 메소드 변수 a, b System.out.println( p + " " + q); // 멤버변수 p와 q } } // 결과 : p 100 q 193 (동적할당됨..)
'Programming Language > JAVA' 카테고리의 다른 글
[JAVA] java.util.arrays (0) | 2013.05.15 |
---|