개발/K-DigitalTraining 수강중
2/28 자바 수업
배타브
2023. 2. 28. 16:45
728x90
반응형
1교시
package ch6;
public class Variables {
//선언 위치에 따른 변수의 종류
//생성 시기
//클래스 변수 : 클래스가 메모리에 올라갔을 때 생성이 된다
//인스턴스 변수 : 인스턴스가 생성되었을 때
//지역변수 : 변수 선언문이 수행되었을 때
int num; // 멤버 변수 (인스턴스 변수)
static int cv; // 클래스 변수 (static 변수 , 공유 변수)
void method(String name) {
int lv = 0; // 지역변수
}
}
package ch6;
public class DataEx {
public static void main(String[] args) {
Data data = new Data();
//초기화
data.x = 10;
System.out.println("main() : x = "+data.x);
change(data.x);
System.out.println(data.x); // 10 .. ?
}
static void change(int x) {
x= 1000;
System.out.println("change() : x = " + x);
}
}
change (data.x) 가 1000 으로 바뀔줄 알았는데 아니어따!
data.x 를 1000으로 변경하여 값을 보내려면
//값이 넘어감
change(data.x);
System.out.println(data.x); // 10 .. ?
//주소가 넘어감
change2(data);
System.out.println(data.x); // 1000
}
//기본형 매개변수 : 값만 받게 됨
//int x : x가 가지고 있는 값만 받음 / 수정 불가능
static void change(int x) {
x= 1000;
System.out.println("change() : x = " + x);
}
//참조형 매개변수 : 값을 읽고 수정 가능
static void change2(Data d) {
d.x= 1000;
System.out.println("change() : x = " + d.x);
}
change2 참조
2교시
기본형 - > 값만복사 // 참조형 -> 값변경후 주소로 보내줌
package ch6;
public class DateEx2 {
public static void main(String[] args) {
// 인스턴스 생성
Data d = new Data();
d.x = 10;
Data d2= copy(d);
System.out.println("d.x = " + d.x);
System.out.println("d2.x = " + d2.x);
}
static Data copy(Data d) {
Data temp = new Data();
temp.x = d.x + 1;
return temp;
}
}
3교시
static 키워드 설명
// 클래스 변수 (static 변수 , 공유 변수)
static 메서드 안에서는 인스턴스를 바로 사용할 수 없음
package ch6;
/*
* 인스턴스 메소드 : 인스턴스(객체)를 생성하고 사용해야 함
* 클래스(static) 메서드 : 인스턴스(객체)를 생성하지 않고도 바로 사용이 가능함
* 클래스명.메서드명();
*/
public class MyMath {
long a, b;
long add() {
return a+b;
}
long subtract() {
return a -b;
}
long multiply() {
return a*b;
}
double divide() {
return a/b;
}
//기본형 매개변수를(지역변수) 이용한 사칙연산
//static 메서드 안에서는 인스턴스를 바로 사용할 수 없음
static long add(long a,long b) {
return a+b;
}
static long subtract(long a,long b) {
return a-b;
}
static long multiply(long a,long b) {
return a*b;
}
static double divide(long a,long b) {
return a/b;
}
}
package ch6;
public class MyMathEx {
public static void main(String[] args) {
//static 메서드 바로 호출 가능
System.out.println(MyMath.add(1, 2));
//인스턴스 메소드 호출
MyMath math = new MyMath();
math.a = 200L;
math.b = 100L;
System.out.println(math.add());
System.out.println(math.subtract());
System.out.println(math.multiply());
System.out.println(math.divide());
}
}
4교시
변수와 메서드에 static 이 붙으면 같은 static 끼리는 호출시 문제가 없음
static 이 붙지 않은 변수나 메서드를 호출하려면 인스턴스 생성 후 가능
5교시
연습문제
package ch6;
public class Student {
//학생이름 name
//반 ban
//번호 no
//국어점수 kor
//영어점수 eng
//수학점수 math
String name;
int ban;
int no;
int kor;
int eng;
int math;
public Student(String name, int ban, int no, int kor,int eng, int math) {
super();
this.name = name;
this.ban = ban;
this.no = no;
this.kor = kor;
this.eng = eng;
this.math = math;
}
public String info() {
int total = kor + eng + math;
double average = total/3.0;
String result = name + "," + ban + "," + no + "," + kor + "," + eng + "," + math+"\n총합 : "+total+"\n평균 : "+average;
return result ;
}
}
package ch6;
public class StudentEx {
public static void main(String[] args) {
// TODO Auto-generated method stub
Student stu = new Student("홍길동",1,1,100,60,76);
String msg = stu.info();
System.out.println(msg);
//msg 출력시
//"홍길동",1,1,100,60,76 / 점수합계 , 평균
}
}
이후부터 잠이 와 도저히 수업에 집중이 안되어서 듣는둥 마는둥했다...... 어제 오랜만에 소주를 한잔 마셔서 일까..?ㅠㅠ
피로좀 풀고 영상으로 복습해야겠다..ㅠ
728x90
반응형