[자바]무시 하기 쉬 운 문제 들
4841 단어 자바
정적 방법 에 서 는 정적 이 아 닌 구성원 이나 구성원 방법 을 호출 할 수 없습니다.
:
비정 상 멤버 변 수 를 인용 할 수 없습니다.잘 알 고 있 습 니 다.
public class A
{
int a;
public static void main(String[] args)
{
a = 2;// !!a
}
}
그러나 사람들 은 다음 과 같은 상황 을 소홀히 한다.
package cn.edu.chd.test;
public class B
{
public static void main(String[] args)
{
new C();// ,
new B().new C();//
new D();// ,
}
public void func()
{
new C();//
new D();//
}
class C
{
}
static class D
{
}
}
C 클래스 는 B 클래스 의 구성원 변수 에 해당 하기 때문에 정적 방법 에서 new 인 스 턴 스 를 낼 수 없습니다(기억 하 세 요:
클래스 의 정적 방법 은 동적 방법 을 직접 호출 할 수 없습니다.
그렇지 않 으 면 오류 알림:
No enclosing instance of type B is accessible. Must qualify the allocation with an enclosing instance of type B (e.g. x.new A() where x is an
instance of B).
2.proctected 수식 구조 기 는 가방 내부 에서 new 인 스 턴 스 를 받 을 수 있 고 다른 가방 비 하위 클래스 에 서 는 new 인 스 턴 스 를 받 을 수 없습니다.다른 만두 류 에 접근 할 수 있 습 니 다(익명 류 포함):
도 메 인 패키지:
package cn.edu.chd.domain;
public class A
{
protected A(){
System.out.println("A constructor");
}
}
테스트 패키지:
package cn.edu.chd.test;
import cn.edu.chd.domain.A;
public class B
{
public static void main(String[] args)
{
}
public void func()
{
new A();// !!!The constructor A() is not visible
new C();// ,A A protected
new A(){};// , new A
}
class C extends A
{//C super.A()
}
}
3.클래스 앞의 수식 어 는 세 가지(public/abstract/final)만 있 고 내부 류 는 제외 합 니 다.
4.접근 권한 문제:
클래스 의 한 구성원(방법 또는 속성,method or field)의 접근 권한:
1.package(또는 friendly 라 고도 부 르 지만 쓰 지 않 아 도 됩 니 다.friendly 도 키워드 가 아 닙 니 다)권한 은 같은 가방 의 클래스 와 이 클래스 를 계승 하 는 하위 클래스 에 접근 할 수 있 습 니 다.
2.Public 권한,모든 종류 에 접근 할 수 있 습 니 다.
3.private 권한,이러한 내부 의 구성원(방법,속성,내부 클래스)은 접근 할 수 있 고 이러한 인 스 턴 스 대상 도 접근 할 수 없습니다.
4.proctected 권한,계승 접근 권한,가방 안의 나머지 클래스 와 이 클래스 를 계승 하 는 하위 클래스 는 접근 할 수 있 으 며 friendly 권한 과 차이 가 많 지 않 습 니 다.
클래스 에서 구조 함수 의 접근 권한:
1.Public 는 간단 합 니 다.
2.proctected 구조 함 수 는 이러한 하위 클래스 를 계승 하여 호출 할 수 있 으 나 가방 밖 이나 하위 클래스 이외 의 곳 에서 호출 되 어 인 스 턴 스 를 만 들 수 없습니다.
3.private 이 종 류 는 계승 할 수 없습니다.
내부 클래스 접근 권한:
1.Public 어느 곳 에서 든 방문 가능
2.protected 는 같은 가방 에 접근 할 수 있 고 서로 다른 가방 의 하위 클래스 에 접근 할 수 있 습 니 다.
3.friendly(기본 권한)같은 가방 에 접근 할 수 있 습 니 다.
4.private 는 이 내부 클래스 의 외부 클래스 자체 만 접근 할 수 있 습 니 다.
클래스 접근 권한:
1.Public 어느 곳 에서 든 방문 가능
2、friendly 기본 권한,패키지 권한 이 라 고도 부 르 며 같은 가방 에서 접근 할 수 있 습 니 다.
5.추상 류 는 abstract 로 수식 하 는 종류 인 데 이런 종류 안에 추상 적 인 방법 이 있 을 수도 있 고 없 을 수도 있다!!
(1)추상 류 에 반드시 추상 적 인 방법 이 있 는 것 은 아니 지만 추상 적 인 방법 이 있 는 유형 은 반드시 추상 류 이다.
(2).추상 류 는 예화 되 어 서 는 안 된다!
package cn.edu.chd.demo;
public abstract class Demo
{
// public abstract void func();// , HttpServlet
public void func1()
{
}
}
6.클래스 에서 설명 하 는 범 형 은 비정 상 구성원 에 게 만 유효 합 니 다.
package cn.edu.chd.basic;
public class Demo<T>
{
public void aa(T t)
{
}
public void bb(T t1,T t2)
{
}
//
public static <T> void cc(T t)
{
}
}
7.
finally 블록 에서 코드 가 실행 되 지 않 는 경우
package demo;
/**
* @author Rowand jj
* finally
*/
public class TryDemo
{
public static void main(String[] args)
{
try
{
System. out .println( "aaaa" );
System. exit (1);
} catch (Exception e)
{
// TODO : handle exception
}
finally
{
System. out .println( "ha" );
}
}
}
8.
final 수식 변 수 는 인용 대상 을 바 꿀 수 없 지만 대상 의 내용 을 바 꿀 수 있 습 니 다.
public class Deemo
{
public static void main(String[] args)
{
final Person p = new Person ( "zhangsan" ,11);
p.setAge(12);//
System. out .println(p.getAge());
// p = new Person(" lisi ",22); //
}
}
class Person
{
int age ;
String name ;
public Person(String name, int age)
{
this . name = name;
this . age = age;
}
public int getAge()
{
return age ;
}
public void setAge( int age)
{
this . age = age;
}
public String getName()
{
return name ;
}
public void setName(String name)
{
this . name = name;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.