JAVA 기본 반환타입
💬 return 키워드 사용
◾ void
◾ boolean
◾ char(문자)
◾ 정수 : byte, short, int(기본), long
◾ 실수 : float, double(기본)
◾ 참조형 : String(문자열), 배열(1차원)
class Name {
int a; // 전역 변수
Name b; // 클래스 변수
static int c; // 정적 변수 -- 순서 3(static)
public static void main(String[] a) { // -- 순서 1(static)
int d; // 지역 변수 -- 메소드 내에 존재
static int e; // -- 순서 2(static)
System.out.println("김지연");
}
}
💡 JAVA JDK 다운로드
Java SE Development Kit 8u333 - JAVA 8
◾ Windows - jdk-8u333-windows-x64.exe 다운로드
📃 명령 프롬프트에서 이름 출력하기
💬 파일 접근 할 때는 cd 명령 사용
ex) cd\ 는 C드라이브의 기본 주소로 이동
💬 (String[] args) -> (String[] a) 상관 X
💬 (String[] args) -> (String a[]) 상관 X
◾ javac FirstEclipse.java : 컴파일 된 FirstEclpse.class(CLASS 파일)
◾ java FirstEclipse : java파일
💡 소스 분석하기
💾 소스코드
📃 JAVA 소스를 분석해보자(1)
📝 AddMethod 클래스
◾ 두 매개변수의 값을 더하는 메소드가 있는 클래스
// AddMethod라는 이름으로 클래스 선언
class AddMethod { // {기호에 의해 클래스 시작점 지정
// String형 1차원 배열을 이용하여 main()를 선언하며
// {기호에 의해 main 메서드 시작점 지정
public static void main(String[] args) {
// long형 변수 선언, add메서드의 실매개변수값 할당
long result = add(100,200);
// System 클래스의 out 객체에 있는 println메서드를 사용하여
// result 변수의 값을 출력
System.out.println(result);
addPrint(10, 11);
} // main 메서드의 끝을 알려줌
// long형 add메서드를 선언하며 매개변수로 n1, n2를 long형으로 선언
public static long add(long n1, long n2) { // {기호에 의해 add메서드 시작점 지정
// long형 result지역변수를 선언하며 매개변수 n1과 n2를 더함
long result = n1 + n2;
// result지역변수를 반환
return result;
} // add 메서드의 끝을 알려줌
// void형 addPrint메서드를 선언하며 매개변수로 n1, n2를 long형으로 선언
public static void addPrint(long n1, long n2) { // {기호에 의해 addPrint메서드 시작점 지정
// long형 result지역변수를 선언하며 매개변수 n1과 n2를 더함
long result = n1 + n2;
// System 클래스의 out 객체에 있는 println메서드를 사용하여
// result 변수의 값을 출력
System.out.println(result);
} // addPrint 메서드의 끝을 알려줌
} // AddMethod 클래스의 끝을 알려줌
📝 cmd
📃 JAVA 소스를 분석해보자(2)
💾 소스코드
📝 Human, Student, JavaTest 클래스
◾ 상속 예제
// Human이라는 이름으로 상위 클래스 선언
class Human { // {기호에 의해 Human 클래스 시작점 지정
// int형 age지역변수 선언
int age;
// String형 name지역변수 선언
String name;
// 클래스명과 동일한 이름으로, int형 age매개변수와 String형 name매개변수를 가지는 생성자를 정의한다.
Human(int age, String name) { // {기호에 의해 생성자 Human메서드 시작점 지정
// this키워드를 이용하여 Human 클래스가 가지고 있는 age지역변수에 age매개변수 값을 저장한다.
this.age = age;
// this키워드를 이용하여 Human 클래스가 가지고 있는 name지역변수에 name매개변수 값을 저장한다.
this.name = name;
} // int형 age매개변수, String형 name매개변수가 있는 Human 생성자의 끝을 알려줌
// void형 intro메서드를 선언하며 매개변수는 없다.
void intro() { // {기호에 의해 intro메서드 시작점 지정
// System 클래스의 out 객체에 있는 println메서드를 사용하여
// 괄호 안의 값을 출력한다. age, name은 생성자에서 실매개변수로 입력받은 값을 출력한다.
System.out.println("안녕, " + age + "살 " + name + "입니다.");
} // intro 메서드의 끝을 알려줌
} // Human 클래스의 끝을 알려줌
// Student라는 이름으로 하위 클래스를 선언
// Student 클래스는 extends 키워드를 이용하여 Human 상위 클래스의 상속을 받는다.
class Student extends Human { // {기호에 의해 Student클래스 시작점 지정
// int형 stnum지역변수 선언
int stnum;
// String형 major지역변수 선언
String major;
// 클래스명과 동일한 이름으로, int형 age매개변수, String형 name매개변수, int형 stnum매개변수, String형 major매개변수를 가지는 생성자를 정의한다.
Student(int age, String name, int stnum, String major) { // {기호에 의해 생성자 Student메서드 시작점 지정
// super키워드를 이용하여 Student의 상위 클래스인 Human 클래스가 가지고 있는 Human 생성자에 age매개변수와 name매개변수를 저장한다.
super(age, name);
// this키워드를 이용하여 Student 클래스가 가지고 있는 stnum지역변수에 stnum매개변수 값을 저장한다.
this.stnum = stnum;
// this키워드를 이용하여 Student 클래스가 가지고 있는 major지역변수에 major매개변수 값을 저장한다.
this.major = major;
} // int형 age매개변수, String형 name매개변수, int형 stnum매개변수, String형 major매개변수가 있는Student 생성자의 끝을 알려줌
// void형 study메서드를 선언하며 매개변수는 없다.
void study() { // {기호에 의해 study메서드 시작점 지정
// System 클래스의 out 객체에 있는 println메서드를 사용하여
// 괄호 안의 문자열을 출력한다.
System.out.println("하늘천 땅지 검을현 누를황");
} // study메서드의 끝을 알려줌
} // Student 클래스의 끝을 알려줌
// JavaText라는 이름으로 클래스 선언
class JavaTest { // {기호에 의해 JavaTest클래스 시작점 지정
// String형 1차원 배열을 이용하여 main()을 선언
public static void main(String[] args) { // {기호에 의해 main메서드 시작점 지정
// kim이라는 참조변수를 이용하여 Human 객체를 생성하고
// Human생성자에 실매개변수 값인 29와 "김상형"을 넣는다.
Human kim = new Human(29, "김상형");
// . 을 이용하여 kim객체 안에 있는 intro 메서드를 호출한다.
kim.intro();
// lee라는 참조변수를 이용하여 Student 객체를 생성하고
// Student생성자에 실매개변수 값인 42, "이승우", 9312345, "경영"을 넣는다.
Student lee = new Student(42, "이승우", 9312345, "경영");
// . 을 이용하여 lee객체 안에 있는 intro 메서드를 호출한다.
// Student클래스는 Human클래스를 상속받기 때문에 Human클래스가 가지고 있는 intro메서드를 사용할 수 있다.
lee.intro();
} // main메서드의 끝을 알려줌
} // JavaTest 클래스의 끝을 알려줌
📝 cmd
📃 JAVA 소스를 분석해보자(3)
📝 Time, JavaTest1 클래스
◾ 캡슐화 예제
💬 에러나는 이유?
매개변수를 private로 지정했기 때문이다.
class Time {
private boolean am;
private int hour;
private int minute;
private int second;
Time(int hour, int minute, int second) {
setHour(hour);
setMinute(minute);
setSecond(second);
}
public int getHour() {
return hour;
}
public void setHour(int hour) {
if(hour >= 0 && hour <= 23) {
this.am = hour < 12;
this.hour = hour % 12;
if(this.hour == 0)
this.hour = 12;
}
}
public int getMinute() {
return minute;
}
public void setMinute(int minute) {
if(minute >=0 && minute <= 59) {
this.minute = minute;
}
}
public int getSecond() {
return second;
}
public void setSecond(int second) {
if(second >=0 && second <= 59) {
this.second = second;
}
}
void whatTime() {
System.out.print(am ? "오전 " : "오후 ");
System.out.println(hour + "시 " + minute + "분 " + second + "초 ");
}
}
class JavaTest1 {
public static void main(String[] args) {
Time now = new Time(12, 34, 56);
now.whatTime();
now.hour = 34; // 에러
now.setHour(34); // 거부
now.setSecond(-25); // 거부
now.whatTime();
now.setHour(10); // 가능
now.setMinute(45); // 가능
now.whatTime();
}
}
📝 cmd
⚡ 수정해보자!!!
📝 Time, JavaTest1 클래스
class Time {
public boolean am;
public int hour;
public int minute;
public int second;
Time(int hour, int minute, int second) {
setHour(hour);
setMinute(minute);
setSecond(second);
}
public int getHour() {
return hour;
}
public void setHour(int hour) {
if(hour >= 0 && hour <= 23) {
this.am = hour < 12;
this.hour = hour % 12;
if(this.hour == 0)
this.hour = 12;
}
}
public int getMinute() {
return minute;
}
public void setMinute(int minute) {
if(minute >=0 && minute <= 59) {
this.minute = minute;
}
}
public int getSecond() {
return second;
}
public void setSecond(int second) {
if(second >=0 && second <= 59) {
this.second = second;
}
}
void whatTime() {
System.out.print(am ? "오전 " : "오후 ");
System.out.println(hour + "시 " + minute + "분 " + second + "초 ");
}
}
class JavaTest1 {
public static void main(String[] args) {
Time now = new Time(12, 34, 56);
now.whatTime();
now.hour = 34; // 에러
now.setHour(34); // 거부
now.setSecond(-25); // 거부
now.whatTime();
now.setHour(10); // 가능
now.setMinute(45); // 가능
now.whatTime();
}
}
📝 cmd
'Language > JAVA' 카테고리의 다른 글
JAVA 11일차 - 실습 문제 01 수정 (0) | 2022.07.05 |
---|---|
JAVA 11일차 - 실습 문제 01 (0) | 2022.07.04 |
JAVA 10일차 - 예외 처리 (0) | 2022.07.01 |
JAVA 10일차 - 마우스 이벤트 리스너 (0) | 2022.07.01 |
JAVA 9일차 - 이벤트 리스너 (0) | 2022.06.30 |
댓글