인프런 커뮤니티 질문&답변

shafeel2님의 프로필 이미지
shafeel2

작성한 질문수

윤재성의 Google 공식 언어 Kotlin 프로그래밍 시작하기

25강 Companion

t1.getA1()); cannot find symbol method getA1()

작성

·

309

0

25강 companion 강의중

t1.getA1()); 에서

cannot find symbol method getA1() 라는 오류가 생깁니다

 

public class javaMain {
public int javaA1 = 100;

public void javaMethod1() {
System.out.println("javaMethod1");
}

public static void main(String [] args) { // java 실행의 시작점
TestClass t1 = new TestClass();
System.out.printf("t1.a : %d\n", t1.getA1());
}
}

답변 4

0

shafeel2님의 프로필 이미지
shafeel2
질문자

위 처럼 여전히 오류가 발생함

0

shafeel2님의 프로필 이미지
shafeel2
질문자

강의화면상에는 아래와 관련된 부분이 없는데요 ..

public int getA1() {
return this.javaA1;
}

0

shafeel2님의 프로필 이미지
shafeel2
질문자

소스코드는 없나요

주시면 대조해 볼까 합니다

0

안녕하세요, 인프런 AI 인턴이에요.

현재 오류 메시지인 “cannot find symbol method getA1()“는 메소드를 찾을 수 없다는 뜻입니다.

오류의 원인은 TestClass 클래스에 getA1() 메소드가 정의되지 않았기 때문입니다. 메소드가 정의되어 있지 않은데 호출하려고 하면 컴파일러는 해당 메소드를 찾을 수 없다는 오류를 발생시킵니다.

따라서, 오류를 해결하기 위해서는 TestClass 클래스에 getA1() 메소드를 정의해주어야 합니다. 예를 들어, TestClass 클래스 내부에 다음과 같이 getA1() 메소드를 작성해보세요.

public class TestClass {
    // 필드 정의 ...

    public int getA1() {
        return this.javaA1;
    }

    // 다른 메소드 정의 ...
}

위와 같이 메소드를 정의하고 실행하면 오류가 발생하지 않을 것입니다.

만약 해당 메소드가 이미 정의되어 있다면, 메소드의 이름이 올바른지(대소문자 구분 등), 메소드가 올바른 위치에 있는지를 확인해보세요.

이와 같이 오류가 발생할 때는 주로 메소드가 정의되어 있지 않은 경우이므로, 메소드의 정의를 확인하는 것이 첫 번째로 해야 할 작업입니다.

더 많은 도움이 필요하시다면, TestClass 클래스의 전체 코드나 더 자세한 내용을 공유해주시면 더 정확한 도움을 드릴 수 있을 것입니다. 감사합니다.

shafeel2님의 프로필 이미지
shafeel2
질문자

// Main.kt

class TestClass {
var a = 100
companion object {
var b = 1000
fun companionFun() {
println("companionFun")
//println("$a") // 오류발생 >>> companion object 외부의 멤버변수는 사용불가 함
println("$b") // 1000
}
}

fun testFun() {
println("$a") // 100
println("$b") // 1000, companion object 의 참조변수는 객체생성없이 바로 호출가능 함
companionFun()
}
}

fun main() {
val obj = javaMain() // java class 를 호출
println("${obj.javaA1}") // 100
obj.javaMethod1() // javaMethod1
}

// javaMain.java

public class javaMain {
public int javaA1 = 100;

public int getA1() {
return this.javaA1;
}

public void javaMethod1() {
System.out.println("javaMethod1");
}

public static void main(String [] args) { // java 실행의 시작점
TestClass t1 = new TestClass();
System.out.printf("t1.a : %d\n", t1.getA1());

// 윗줄이 오류발생되는 부분입니다

 


t1.testFun(); // 100 1000 companionFun 1000
}
}

shafeel2님의 프로필 이미지
shafeel2

작성한 질문수

질문하기