이번 주는 자바에 대해 더 깊히 알 수 있었던 한 주였습니다. 다양한 내용들을 공부하면서 정리할 부분이 많아졌네요. 블로그에 내용을 정리하고 글을 쓰는 과정에서 복습도 되었고, 긍정적인 에너지를 느낄 수 있었습니다.
기본기를 탄탄하게 다져가며 한 발씩 앞으로 나아가려 합니다. 이번 글에는 변수의 범위, 접근 제어자, 메소드, 그리고 static에 대한 학습 내용을 간략하게 정리하여 담아보려 합니다.
자바에서 변수의 범위(scope)는 변수가 어디에서 사용될 수 있는지를 나타냅니다. 다양한 변수의 범위가 있으며, 이를 이해하고 적절하게 활용하는 것이 프로그램의 가독성과 유지보수성을 높이는 데 중요합니다.
public class LocalVariableExample {
public void myMethod() {
int localVar = 10; // 지역 변수
System.out.println(localVar);
}
}
Javapublic class MemberVariableExample {
int instanceVar = 50; // 멤버 변수
public void myMethod() {
System.out.println(instanceVar); // 인스턴스 메서드에서 접근 가능
}
}
Javapublic class ClassVariableExample {
static int classVar = 100; // 클래스 변수
public static void main(String[] args) {
System.out.println(classVar); // 클래스 메서드에서 접근 가능
}
}
Javapublic class ParameterExample {
public void myMethod(int parameterVar) { // 매개변수
System.out.println(parameterVar);
}
}
Java자바에서 메소드는 코드의 모듈화와 재사용성을 촉진하는 데 중요한 역할을 하는 프로그래밍 구성 요소입니다. 메소드는 특정 작업을 수행하는 코드 블록을 나타내며, 클래스 내에서 정의됩니다. 아래는 자바에서 메소드에 대한 자세한 설명입니다.
[접근 제어자] [static] [리턴 타입] 메소드 이름([매개변수 목록]) {
// 메소드의 기능 정의
return 반환값;
}
Javapublic static void printMessage() {
System.out.println("Hello, Java!");
}
Javapublic int add(int a, int b) {
return a + b;
}
Javapublic void printName(String name) {
System.out.println("이름: " + name);
}
Javapublic int add(int a, int b) {
return a + b;
}
Javaint result = add(3, 5); // add 메서드 호출
Javapublic int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
Javapublic class AccessModifiersExample {
public int publicVar; // 어디서든 접근 가능
private int privateVar; // 클래스 내에서만 접근 가능
protected int protectedVar; // 동일 패키지 및 하위 클래스에서 접근 가능
int packageVar; // (default) - 같은 패키지 내에서만 접근 가능
}
Java💡접근 제어자의 범위를 한눈에 볼 수 있도록 표로 표현하겠습니다.
public | protected | (default) | private | |
---|---|---|---|---|
동일 클래스 내 | O | O | O | O |
동일 패키지 내 | O | O | O | X |
하위 클래스 내 | O | O | X | X |
전체 프로젝트 내 | O | X | X | X |
static은 자바에서 특정 멤버(필드(변수), 메서드, 블록)를 클래스 레벨에 속하도록 지정하는 키워드입니다. static 멤버는 클래스의 인스턴스와는 독립적으로 존재하며, 여러 인스턴스가 해당 멤버를 공유합니다.
public class MyClass {
static int staticField = 10; // 정적 필드
public static void main(String[] args) {
MyClass obj1 = new MyClass();
MyClass obj2 = new MyClass();
System.out.println(obj1.staticField); // 클래스 이름으로 접근
System.out.println(obj2.staticField);
obj1.staticField = 20; // 모든 인스턴스가 공유하므로 값 변경 시 모든 인스턴스에 영향
System.out.println(obj1.staticField);
System.out.println(obj2.staticField);
}
}
Javapublic class MyClass {
static void staticMethod() {
System.out.println("Static method");
}
public static void main(String[] args) {
MyClass.staticMethod(); // 클래스 이름으로 직접 호출
}
}
Javapublic class MyClass {
static int staticField = 10;
int instanceField = 20;
static void staticMethod() {
// this.instanceField; // 에러: 정적 메소드에서 인스턴스 멤버에 직접 접근 불가
}
}
Javastatic 키워드를 올바르게 활용하면 클래스 레벨에서 공유되는 멤버를 효과적으로 사용할 수 있습니다. 그러나 지나치게 남발하면 객체지향 프로그래밍의 장점을 상실할 수 있으므로 적절한 상황에서 사용하는 것이 중요합니다.
이번 주는 자바에 대한 깊은 학습이 이뤄진 시간이었습니다. 다양한 주제들을 다루며 정리 작업이 많아지긴 했지만, 블로그에 글을 쓰고 있는 과정에서 지식을 복습하며 긍정적인 동기부여를 받았습니다.
변수의 범위, 메소드, 접근 제어자, 그리고 static에 대한 학습 내용을 정리하면서 기초적인 부분을 탄탄히 다지고 있다는 느낌을 받았습니다.
앞으로도 꾸준한 블로그 업데이트와 학습을 통해 지식을 더 쌓아가면서 성장해 나가겠습니다.🚀
소개 자바에서 Set은 중복을 허용하지 않는 데이터 집합을 의미합니다. List와 달리 동일한 요소를 여러 번…
해시(Hash)란 무엇인가? 해시(Hash)는 자바 프로그래밍에서 빠르고 효율적인 데이터 저장 및 검색을 위한 핵심적인 개념입니다. 이…
LinkedList란 무엇인가? LinkedList는 자바에서 유용하게 사용되는 자료구조 중 하나로, 연결 리스트 방식을 이용하여 데이터를 관리하는…
ArrayList란 무엇인가? ArrayList는 자바에서 가장 널리 사용되는 컬렉션 중 하나로, 가변 크기의 배열을 구현한 클래스입니다.…
제네릭(Generic)이란? 자바 제네릭은 코드의 재사용성을 높이고 타입 안전성을 보장하는 중요한 개념입니다. 이 블로그 글에서는 자바…