method, retrun, static, 매개변수
생성자는 중복으로 정의할 수 있지만 호출시 구분될 수 있도록 매개변수의 숫자나 데이터타입이 다른 매개변수의 위치가 바뀌어야 사용이 가능하다.
package classes;
public class Classtest {
int a;
String b;
public Classtest(int a) {
this.a=a;
}
public Classtest(String b) {
this.b=b;
}
public Classtest(int a,String b) {
this.a=a;
this.b=b;
}
public Classtest(String b,int a) {
this.a=a;
this.b=b;
}
}
- void 메서드이름(x){ }
- void 메서드이름(매개변수){ }
- 리턴타입 메서드이름(x){ }
- 리턴타입 메서드이름(매개변수){ }
modifier returnType nameOfMethod (Parameter){ // method body }
package day0830;
public class Point {
//필드
int x;
int y;
//멤버 메서드
//리턴타입 메서드이름 ( ) { }
void print() {
System.out.println("x : " + x);
System.out.println("y : " + y);
}
}
package day0830;
public class PointTest01 {
public static void main(String[] args) {
//지역변수(메인메서드안에서만 사용가능함)
//지역변수 --> 어떠한 영역안에 포함되어 있다면.
//지역변수 --> stack (공유,정적)
//Point p1;-->클래스로 만든 변수는 데이터값을 바로 넣을 수 없다.
//int a = 10;-->기본 변선 선언시 초기화를 같이 할 수 있다.
Point p1=new Point();//new를 사용해서 heep 메모리를 할당하여
System.out.println("p1->x : "+p1.x);
System.out.println("p1->y : "+p1.y);
p1.print();
System.out.println();
Point p2=new Point();//지역변수 p2 new 사용해서 heep 할당 point-생성자
System.out.println("p2->x : "+p2.x);
System.out.println("p2->y : "+p2.y);
p2.print();
}//main
}//class
p1->x : 0
p1->y : 0
x : 0
y : 0
p2->x : 0
p2->y : 0
x : 0
y : 0
retrun--> break;처럼 실행하다가 중간에 하위부분을 실행하고싶지 않을떄 사용할 수 있음.
하지만 안써도 상관없다(void 메서드는 메인메서드{ }가 종료되면 사라지기때문)
package day0830;
public class Point {
int x;
int y;
void print() {
System.out.println("x : " + x);
System.out.println("y : " + y);
//return;//메서드종료
}
}
package day0830;
public class PointTest01 {
public static void main(String[] args) {
Point p1=new Point();
p1.x=10;
p1.y=20;
p1.print();
System.out.println();
Point p2=new Point();
p2.print();
}//main
}//class
x : 10
y : 20
x : 0
y : 0
package day0830;
public class Point {
//필드
int x;
int y;
//멤버 메서드
//리턴타입 메서드이름 ( ) { }
void print() {
System.out.println("x : " + x);
System.out.println("y : " + y);
return;//메서드종료
}
//setter메서드
void setX(int x) {
this.x=x;
}
void setY(int y) {
this.y=y;
}
}
package day0830;
public class PointTest01 {
public static void main(String[] args) {
//지역변수(메인메서드안에서만 사용가능함)
//지역변수 --> 어떠한 영역안에 포함되어 있다면.
//지역변수 --> stack (공유,정적)
//Point p1;-->클래스로 만든 변수는 데이터값을 바로 넣을 수 없다.
//int a = 10;-->기본 변선 선언시 초기화를 같이 할 수 있다.
Point p1=new Point();//new를 사용해서 heep 메모리를 할당하여
p1.setX(100);
p1.y=20;
p1.setY(200);
//System.out.println("p1->x : "+p1.x);
//System.out.println("p1->y : "+p1.y);
p1.print();//메서드 이름( ) --> 메서드 호출
System.out.println();
Point p2=new Point();//지역변수 p2 new 사용해서 heep 할당 point-생성자
//System.out.println("p2->x : "+p2.x);
//System.out.println("p2->y : "+p2.y);
p2.print();
}//main
}//class
x : 100
y : 200
x : 0
y : 0
package day0830;
public class Point {
private
//필드
int x;
int y;
//멤버 메서드
//리턴타입 메서드이름 ( ) { }
void print() {
System.out.println("x : " + x);
System.out.println("y : " + y);
return;//메서드종료
}
//setter메서드
void setX(int x) {
this.x=x;
}
void setY(int y) {
this.y=y;
}
//리턴타입이 존재: return 키워드뒤에 value
//value가 어떤유형인지에 따라 결정해주면 된다.
//일반적으로 return value와 returnType을 일치시킨다
//getter메서드
public int getX() {
//System.out.println("getX()가 실행되었습니다.");
return x;
}
public int getY() {
return y;
}
}//class
package day0830;
public class PointTest01 {
public static void main(String[] args) {
//지역변수(메인메서드안에서만 사용가능함)
//지역변수 --> 어떠한 영역안에 포함되어 있다면.
//지역변수 --> stack (공유,정적)
//Point p1;-->클래스로 만든 변수는 데이터값을 바로 넣을 수 없다.
//int a = 10;-->기본 변선 선언시 초기화를 같이 할 수 있다.
Point p1=new Point();//new를 사용해서 heep 메모리를 할당하여
System.out.println();
int x = p1.getX();
p1.setX(100);
//p1.y=20;
p1.setY (200);
//System.out.println("p1->x : "+p1.x);
//System.out.println("p1->y : "+p1.y);
p1.print();//메서드 이름( ) --> 메서드 호출
System.out.println();
Point p2=new Point();//지역변수 p2 new 사용해서 heep 할당 point-생성자
//System.out.println("p2->x : "+p2.x);
//System.out.println("p2->y : "+p2.y);
p2.print();
}//main
}//class
x : 100
y : 200
x : 0
y : 0
package day0830;
public class Calculator {
//클래스안에 쓸 수 있는 것들
//1.필드
//2.메서드
//필드와 클래스는 무조건적으로 있어야하는 것들은 아니지만
//클래스안에 필드와 메서드 둘 다 없으면 의미없는 클래스가 된다.
//리턴타입 메서드이름(매개변수){}
public static int plus(int a, int b) {
return a+b;
}
public static int minus(int a, int b) {
return a-b;
}
//3.생성자(필수-생략가능)
//4.내부 클래스
class AAA{
int a;
void disp() {}
public AAA() {
}
}
}//class
package day0830;
public class CalcTest01 {
public static void main(String[] args) {
/*객체를 각각 만들기
Calculator Cal=new Calculator();
int result = Cal.plus(10, 20);
System.out.println(result);
result = Cal.minus(100, 50);
System.out.println(result);
*/
//객체를 만들지 않고 값만 변경
int result =Calculator.plus(100,200);
System.out.println(result);
result =Calculator.minus(5,2);
System.out.println(result);
}//main
}//class
300
3
package book;
public class Calculator {
public Calculator() {//생략된 생성자
}
//메서드
void powerOn(){
System.out.println("전원을 켭니다.");
}
int plus(int x, int y){
//int resulf= x+y;
return x+y;
}
double divide(int x, int y){
return (double)x/y;
}
void powerOff(){
System.out.println("전원을 끕니다.");
}
}//class
package book;
public class CalculatorTest {
public static void main(String[] args) {
Calculator calculator=new Calculator();
calculator.powerOn();
//메서드의 호출:메서드의 바디영역이 실행됩니다.
calculator.powerOff();
}//main
}//class
전원을 켭니다.
전원을 끕니다.
package book;
public class Calculator {
public Calculator() {//생략된 생성자
}
//메서드
void powerOn(){
System.out.println("전원을 켭니다.");
}
int plus(int x, int y){
//int resulf= x+y;
return x+y;
}
double divide(int x, int y){
return (double)x/y;
}
void powerOff(){
System.out.println("전원을 끕니다.");
}
}//class
package book;
import java.util.Scanner;
public class CalculatorTest {
public static void main(String[] args) {
Calculator calculator=new Calculator();
calculator.powerOn();
//메서드의 호출:메서드의 바디영역이 실행됩니다.
Scanner in=new Scanner(System.in);
System.out.println("숫자 2개를 공백을 구분으로 연속적으로 입력하세요.");
int a=in.nextInt();
int b=in.nextInt();
System.out.println("더하기 결과 : "+calculator.plus(a, b));
calculator.powerOff();
}//main
}//class
전원을 켭니다.
숫자 2개를 공백을 구분으로 연속적으로 입력하세요.
10 20
더하기 결과 : 30
전원을 끕니다.
package book;
import java.util.Scanner;
public class CalculatorTest {
public static void main(String[] args) {
Calculator calculator=new Calculator();
calculator.powerOn();
//메서드의 호출:메서드의 바디영역이 실행됩니다.
Scanner in=new Scanner(System.in);
System.out.println("숫자 2개를 공백을 구분으로 연속적으로 입력하세요.");
int a=in.nextInt();
int b=in.nextInt();
System.out.println("더하기 결과 : "+calculator.plus(a, b));
System.out.println("분모와 분자를 연속해서 입력하세요.");
int x=in.nextInt();
int y=in.nextInt();
System.out.printf("%d / %d = %.2f\n" ,x ,y, calculator.divide(a, b));
calculator.powerOff();
}//main
}//class
전원을 켭니다.
숫자 2개를 공백을 구분으로 연속적으로 입력하세요.
10 20
더하기 결과 : 30
분모와 분자를 연속해서 입력하세요.
10 20
10 / 20 = 0.50
전원을 끕니다.
package book;
public class Computer {
//메소드를 작성할 때
/*int sum() {
return 0; }*/
//혹은
/*void sum() {} */
//시작한다.
//매개변수로 전달된 배열정보를 모두 더한결과를 리턴
int sum (int[] arr) {
int result=0;
for(int i=0; i<arr.length;i++) {
//result =result+arr[i];
result +=arr[i];
}
return result;
}//main
}//class
package book;
public class ComputerTest {
public static void main(String[] args) {
int[] arr= {1,2,3,4,5};
Computer com =new Computer();
int result = com.sum(arr);
System.out.println("배열의 합 : "+result);
}
}
배열의 합 : 15
package day0830;
public class MyPrinter {
void print(int data) {
System.out.println(data);
}
void print(long data) {
System.out.println(data);
}
void print(byte data) {
System.out.println(data);
}
void print(short data) {
System.out.println(data);
}
void print(char data) {
System.out.println(data);
}
void print(String data) {
System.out.println(data);
}
void print(Object data) {
System.out.println(data);
}
}//class
package day0830;
public class MethodTest01 {
public static void main(String[] args) {
MyPrinter mp=new MyPrinter();
mp.print(20000000000L);
mp.print("안녕하세요");
mp.print(100);
mp.print('가');
mp.print(3.14);
}//main
}//class
20000000000
안녕하세요
100
가
3.14
package day0830;
public class Calc {
//두개의 정수, 실수 더하기 기능
//static이 존재하기 때문에 달느 객체를 만들 필요없다.
public static int add(int a , int b) {
return a+b;
}
public static double add(double a, double b) {
return a+b;
}
}//class
package day0830;
public class CalcTest02 {
public static void main(String[] args) {
System.out.println("두 수의 더하기 결과는 "+Calc.add(10, 20));
System.out.println("두 실수의 더하기 결과는 "+Calc.add(10.5, 20.5));
}
}
두 수의 더하기 결과는 30
두 실수의 더하기 결과는 31.0
package day0830;
import java.time.LocalDateTime;
public class BoardInsertDTO {
//필드 접근을 private 클래스내부로 제한하고
//대신 public getter,setter메서드를 만들었다.
//oop의 4대개념 중 하나
private long no;
private String title;
private String content;
private String weiter;
private int readCount;
private LocalDateTime createdDate;
private LocalDateTime updatedDate;
private boolean locked;
//getter메서드 : 필드의 값을 읽어오기위한 목적의 메서드
public long getNo() {
return no;
}
//setter메서드 : 필드의 값을 세팅(수정)하기위한 목적의 메서드
public void setNo(long no) {
this.no = no;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getWeiter() {
return weiter;
}
public void setWeiter(String weiter) {
this.weiter = weiter;
}
public int getReadCount() {
return readCount;
}
public void setReadCount(int readCount) {
this.readCount = readCount;
}
public LocalDateTime getCreatedDate() {
return createdDate;
}
public void setCreatedDate(LocalDateTime createdDate) {
this.createdDate = createdDate;
}
public LocalDateTime getUpdatedDate() {
return updatedDate;
}
public void setUpdatedDate(LocalDateTime updatedDate) {
this.updatedDate = updatedDate;
}
public boolean isLocked() {
return locked;
}
public void setLocked(boolean locked) {
this.locked = locked;
}
}//class