반응형
D@101 주소 참조한 뒤 인덱스 번호만큼 메모리 연산하는 것.
returnType nameOfMethod (Parameter List) {
// method body
}
package day0316;
public class ArrayTest13 {
public static void main(String[] args) {
int n; // stact
double a;
double[] num;//스택메모리 4바이트 할당,:heap메모리 참조하는 변수
num = new double[10]; //힙메모리에 할당 8*10
int[] num2;
num2=new int[5];
System.out.println(num.length);
System.out.println(num);
System.out.println(num.toString());
System.out.println(num2);
for(int i=0;i< num.length;i++) {
System.out.print(num[i]+" ");
}
System.out.println();
double ar[][] = new double[][] {{3.141592, 3.14, 3.0},{1.1111112312, 2.12124, 3.11241235}};
// 1차원배열의 집합구조
System.out.println(ar.length);
for(int i=0;i<ar.length;i++) {
System.out.println(ar[i]);
for(int j=0;j<ar[i].length;j++) {
System.out.printf("%e ", ar[i][j]);
System.out.printf("%g ", ar[i][j]); // 자리수가 짧은 것을 선택하는 부동소수점 표현형식
}
System.out.println();
}
}
}
package day0316;
public class ClassTest01 {
public static void main(String[] args) {
int a;
String str;
// 클래스 파일로 데이터 타입을 만들었다.
Exam exam01 = new Exam(); // 메모리 확보 (객체)
Exam exam02 = new Exam();
Exam exam03;
Point p1 = new Point();
Point p2 = new Point();
}
}
package day0316;
public class ClassTest02 {
public static void main(String[] args) {
// Point p; // 메인 메소드 안의 로컬 변수 스택 메모리 주소 할당
Point p = new Point(); // 메인 메소드 안의 로컬 변수 스택 메모리 주소 할당
// 객체 object 만드는 것
// Point p1 = new Point();
System.out.println(p.x); // .은 멤버접근연산자
System.out.println(p.y); // .은 멤버접근연산자
}
}
package day0316;
public class ClassTest03 {
public static void main(String[] args) {
Exam e1 = new Exam();
Exam e2 = new Exam();
e2.name = "test";
e2.kor = 100;
e2.eng = 100;
e2.mat = 100;
e2.display();
e1.calcToAndAvg();
}
// e2.name = "test";
// e2.kor = 100;
// e2.name = "test";
// e2.name = "test";
// e2.name = "test";
// e2.name = "test";
// e2.name = "test";
// e2.name = "test";
}
package day0316;
public class Exam {
// Exam이라고 하는 새로운 데이터 타입 묶음
String name; // 클래스 멤버 변수
int kor;
int eng;
int mat;
int tot;
double avg;
int rank;
void calcToAndAvg() { // 대문자로 쓰면 생성자로 오해 가능
tot =kor+eng+mat;
avg = tot/3.0;
rank =1;
}
// 클래스를 만들면 생성자가 존재한다. : 명시하지 않으면 default생성자가 생략
// public Exam() { } // 이거는 안해도 된다. 있어도 없어도 동일. 기본생성자가 이미 있다는 뜻
// default 생성자는 멤버 필드를 초기화하는 역할을 함.
void display() {
System.out.println("이름 : "+name);
System.out.println(", 국어 : "+kor);
System.out.println(", 영어 : "+eng);
System.out.println(", 수학 : "+mat);
System.out.println(", 총점 : "+tot);
System.out.println(", 평균 : "+avg);
System.out.println(", 순위 : "+rank);
}
}
package day0316;
public class MethodTest01 {
public static void main(String[] args) {
//객체생성
Calc cal = new Calc();
// cal.num1 = 10; // 접근 불가능한 private로 됐기 때문에 안됨.
// cal.num2 = 20;
cal.setNum1(100);
cal.setNum2(200);
System.out.println(result);
cal.print();
}
}
package day0316;
public class MethodTest02 {
public static void main(String[] args) {
Calculator cal = new Calculator();
cal.powerOn();
long result = cal.plus(2100000000, 100000000);
System.out.println(result);
System.out.println(cal.minus(1000, 200));
System.out.println(cal.multiple(2100000000, 2));
System.out.println(cal.divide(1, 30));
cal.powerOff();
}
}
package day0316;
public class Point {
int x;
int y;
public Point() {
x=10;
y=20;
}
}
package day0316;
public class Calc {
// 멤버 필드
// 데이터를 함부로 읽을 수 없게 하는 것 private
// 인캡슐래이션, 캡슐화 데이터를 안전하게 처리하기 위해서
private int num1;
private int num2;
public int getNum1() {
return num1;
}
public int getNum1(int _num1) {
return num1;
}
public void setNum1(int _num1) {
this.num1 = _num1;
}
public int getNum2(int _num2) {
return num2;
}
public void setNum2(int _num2) {
this.num2 = _num2;
}
public int add(int n, int m) {
int result = n+m;
return result;
}
// 멤버 메서드
void print()
{
System.out.print("num1 : "+ num1);
System.out.print(" , ");
System.out.println("num1 : "+num2);
}
}
package day0316;
public class Calculator {
// 메서드
public void powerOn() {// 선언부
System.out.println("계산기를 켭니다.");
}
public void powerOff() {// 선언부
System.out.println("계산기를 끕니다.");
}
public long plus(int n, int m) {
return (long)n+m;
} // 리턴 타입을 명시한 경우 반드시 리턴 뒤에 적합한 벨류
public int minus(int n, int m) {
return n-m;
} // 리턴 타입을 명시한 경우 반드시 리턴 뒤에 적합한 벨류
public long multiple(int n, int m) {
return (long)n*m;
} // 리턴 타입을 명시한 경우 반드시 리턴 뒤에 적합한 벨류
public double divide(int n, int m) {
return (double)n/m;
} // 리턴 타입을 명시한 경우 반드시 리턴 뒤에 적합한 벨류
}
반응형
'Programming > Java' 카테고리의 다른 글
자바 상속 개념 extends (0) | 2022.03.22 |
---|---|
Enum and Classs difference in Java (0) | 2022.03.22 |
2022년 3월 14일 배열 (0) | 2022.03.14 |
3월 12일 배운 것 (0) | 2022.03.14 |
Java Strings Tutorial (0) | 2022.02.21 |