JAVA/궁금증
-
왜 static 메서드는 오버라이딩 될 수 없을까?JAVA/궁금증 2024. 10. 2. 17:52
오버라이딩은 인스턴스 메서드에서 가능한데, static 메서드는 클래스에 속한 메서드니까. 1. 인스턴스 메서드인스턴스 메서드는 객체가 생성되어야만 사용할 수 있으며, 객체에 속한 데이터(속성)를 다룬다. 인스턴 메서드는 객체마다 다른 데이터를 사용할 수 있게 해준다. class MyClass { public void instanceMethod() { System.out.println("This is an instance method."); }}MyClass obj = new MyClass(); // 인스턴스 생성obj.instanceMethod(); // 인스턴스 메서드 호출 2. 클래스에 속한 static 메서드static 메서드는 클래스에 속해 있으며 객체를 생성하지 않..
-
.dot 사용: 1. 객체의 멤버에 접근할 때 2. 클래스의 정적(static) 멤버에 접근할 때JAVA/궁금증 2024. 9. 15. 09:04
dot을 사용하는 경우가 다른것도 있지만 일단 2가지만 알아보자면, 1. 객체의 멤버에 접근할 때객체가 생성된 후, 해당 객체의 필드(변수)나 메서드(함수)에 접근하기 위해.public class Person { public String name; public void sayHello() { System.out.println("Hello, my name is " + name); }}public class Main { public static void main(String[] args) { Person person = new Person(); // 객체 생성 person.name = "Alice"; // 필드에 접근하여 값 설정 ..
-
객체의 생성과 참조JAVA/궁금증 2024. 9. 15. 08:52
1. 인스턴스 내부 변수에 카운트 저장 public class Data1 { public String name; public int count; public Data1(String name) { this.name = name; count++; } } public class DataCountMain1 { public static void main(String[] args) { Data1 data1 = new Data1("A"); System.out.println("A count=" + data1.count); Data1 data2 = new Data1("B"); System.out.println("B count=" + data2.count..
-
생성자 다시 기본 정리(do it! 자바)JAVA/궁금증 2024. 9. 15. 08:00
생성자클래스를 생성할 때 사용하는 Person() 같은 함수를 생성자라고 한다.생생성자 이름은 클래스 이름과 같고, 생성자는 반환값이 없다.클래스의 멤버변수는 메서드에 의해 값이 변경될 수도 있지만, 처음 클래스를 생성할 때 값을 정해야하는 경우도 있다. 생성자는 클래스를 처음 만들 때 멤버 변수나 상수를 초기화해준다. 디폴트 생성자Person()클래스엔 생성자가 따로없다. 그래도 new Strudent()를 사용해서 객체를 만들 수 있었던 이유는, 생성자가 없는 클래스는 클래스 파일을 컴파일할 때 자바 컴파일러에서 자동으로 생성자를 만들어주기 때문이다. 이를 디폴트 생성자라고 한다. 기본 생성자는 매개변수도 구현코드도 없다.public class Person { String name; flo..
-
인스턴스 객체화하는 이유JAVA/궁금증 2024. 9. 1. 08:32
public class AccessData { public int publicField; int defaultField; private int privateField; } import access.a.AccessData;public class AccessOuterMain { public static void main(String[] args) { AccessData data = new AccessData(); //public 호출 가능 data.publicField = 1; data.publicMethod(); }} 클래스는 단지 설계도일 뿐이고 실제로 그 클래스를 사용하려면 해당 클래스의 객체를 만들어야 한다.AccessData data = new AccessData();는 ..