자바는 객체 지향 프로그래밍 언어이기 때문에 class를 빼고 생각할 수 없습니다. 그러므로 자바의 함수는 class 안에서만 존재할 수 있습니다.
자바에서는 함수가 아니라 메소드라고 칭합니다.
1. class 활용 예시
public class Animal {
String name;
public void setName(String name) {
this.name = name;
}
public static void main(String[] args) {
Animal cat = new Animal();
cat.setName("boby");
Animal dog = new Animal();
dog.setName("happy");
System.out.println(cat.name);
System.out.println(dog.name);
}
}
2. method 활용 예시
Test class 안에 sum 이라는 메소드를 생성해주고 활용하여 합을 출력하도록 하였습니다.
// vim test.java
public class Test {
public int sum(int a, int b) {
return a+b;
}
public static void main(String[] args) {
int a = 3;
int b = 4;
Test myTest = new Test();
int c = myTest.sum(a, b);
System.out.println(c);
}
}
메소드 안에서의 변수는 지역 변수(local variable)로, 메소드 밖과 완전 독립입니다. 변수 명이 같더라도 서로 영향을 주지 않습니다.
3. 객체 변수 a를 넘겨 활용하는 예시
Test 클래스 형태의 test에 있는 a 객체를 ++ 해주는 vartest 메소드를 생성해줍니다.
myTest 인스턴스를 생성해주고, 그 인스턴스의 a 객체 값을 ++ 해주고 결과값을 출력합니다.
// vim test.java
public class Test {
int a;
public void vartest(Test test) {
test.a++;
}
public static void main(String[] args) {
Test myTest = new Test();
myTest.a = 1;
myTest.vartest(myTest);
System.out.println(myTest.a);
}
}
아래와 같이 this 를 활용하여 작성할 수 있습니다. 아래와 같이 작성할 경우 더 심플해집니다.
// vim test.java
public class Test {
int a;
public void vartest() {
this.a++;
}
public static void main(String[] args) {
Test myTest = new Test();
myTest.a = 1;
myTest.vartest();
System.out.println(myTest.a);
}
}
'Development > Java' 카테고리의 다른 글
[Centos7.8][open-jdk14] How to install open-jdk14 in Centos7.8 (0) | 2021.01.14 |
---|---|
[Solved][Java] Unable to access jarfile ~.jar (0) | 2020.05.11 |
[Java11][Tutorial] 간단한 코드 짜보기 - 4 : 제어문, 조건문 (0) | 2020.01.28 |
[Java11][Tutorial] 간단한 코드 짜보기 - 3 : Array, List, Generics, Map 활용 예시 (0) | 2020.01.27 |
[Java11][Tutorial] 간단한 코드 짜보기 - 2 : String 관련 함수 & StringBuffer (0) | 2020.01.26 |