static方法中,不能訪問類內非static成員變數和方法。
簡單說來,靜態方法可以不用建立物件就呼叫,非靜態方法必須有了物件的例項才能呼叫.因此想在靜態方法中引用非靜態方法是不可能的,因為它究竟引用的是哪個物件的非靜態方法呢?編譯器不可能給出答案,因為沒有物件啊,所以要報錯
class HelloWorld
{
int a1 = 6;
public static void main(String[] args)
{
System.out.print(a1);
/** 成員變數不能直接呼叫 ( 無法從靜態上下文中引用非靜態變數 a1 )
*/
}
}
相關推薦
static方法中,不能訪問類內非static成員變數和方法。
因為我們知道靜態的方法可以在沒有建立例項時使用,而申明為非靜態的成員變數是一個物件屬性,它只有在物件存在時引用,因此如果在物件未建立例項時我們在靜態方法中呼叫了非靜態成員方法自然是非法的,所以編譯器會
java基礎 靜態 static 問在多態中,子類靜態方法覆蓋父類靜態方法時,父類引用調用的是哪個方法?
xtend java pos main 靜態方法 show extends ava pri 多態 package com.swift.jiekou; public class Jicheng_Tuotai_jingtai_diaoyong { publ
Java中的null物件也可以訪問static成員變數和方法
一般來說,一個類的物件要在例項化之後才可以訪問類中的成員變數和方法。如果它還是null,通常意義上我們就認為它不能訪問類中的成員。實際上確實不提倡這樣,而且null物件確實不能訪問例項成員(變數和方法),否則會引發NULLPointerException錯誤。
java中多型父類的成員變數和方法呼叫問題
class Super { String name = "父類名字"; public void setName(String name) { System.out.println(this.getClass());
C++靜態成員函式訪問非靜態成員變數的方法
靜態成員函式不能訪問非靜態成員,這是因為靜態函式屬於類而不是屬於整個物件,靜態函式中的 member可能都沒有分配記憶體。靜態成員函式沒有隱含的this自變數。所以,它就無法訪問自己類的非靜態成員。但
類成員函式轉換成void (*)和靜態成員函式獲取非靜態成員變數的方法
很多第三方函式需要把函式轉換成void(*)型別,如libevent 1.4版本中的event_set函式: 如果要傳遞類成員函式給相應的函式我們應該怎樣處理呢? 僅僅傳遞類成員函式可以嗎? 不可以的!編譯的時候會遇到下面的錯誤: cannot convert DataWa
C++ 兩個包含類互相呼叫彼此的類成員變數和方法
在編寫C++程式時,有時候我們想在一個類中呼叫另一個類中的成員變數或方法,比如:兩個類 A和B ,A包含B,一般A中呼叫B中的方法比較簡單,重點是子類B如何呼叫父類A中的成員變數或方法呢?
關於指向空的物件指標可以訪問類的不包含成員變數的成員函式的原因
#include <iostream> using namespace std; class A { int a; int b; public: void print(){ cout << "abcd"; }
Java 類的成員變數和方法以及構造方法
首先要說的是物件,簡單的說,物件是對客觀世界中的實體的對映。通俗地理解就是客觀世界的每一個事物都是一個物件。在java中,我們需要了解到的還有這個物件的屬性和方法,即這個是事物的外觀、大小等可描述的客觀存在(就是所說的屬性)還有這個事物所能實現的功能或者事物的
重寫——上轉型物件不能操作子類新增成員變數和方法但可以操作子類繼承和重寫的方法
上轉型物件不能操作子類新增成員變數和方法但可以操作子類繼承和重寫的方法 子類重寫父類的前提是;方法名一樣,引數型別和個數一樣。 舉一例可以說明之: class Father { public Father() { }public void shout(Object word
靜態與非靜態的變數和方法
靜態方法:屬於類本身。非靜態方法:屬於類生成的每個物件。如果一個方法與依賴於類的個別特徵,應該保持靜態。否則應該定義為非靜態。public class MethodDemo { public sta
private修飾的成員變數和方法不能被繼承?
看完程式碼就懂了: public class B extends A { public static void main(String[] args) { B b = new B(); System.out.println(b.getVal2());
Java介面成員變數和方法預設修飾符
Java的interface中,成員變數的預設修飾符為:public static final 所以我們在interface中定義成員變數的時候,可以 1:public static final String name = "張三"; 2:String name = "張三"; 以上兩種都可以,老司機一般都
JAVA之通過反射遍歷JavaBean成員變數和方法
在實際的程式碼開發中,難免會遇到資料業務邏輯複雜的表,對映到實體類之後所有的欄位都會變成對應類中的成員變數(前面有介紹外掛自動生成實體類的外掛介紹0.0) 在處理這些數量巨大的實體類的時候,取值賦值無疑變成了非常枯燥的剪下複製。下面介紹一下通過反射來獲取實體類中成員變數和方
C++的類的宣告及成員變數和成員函式
C++通過類及相關的封裝、繼承、多型和虛擬函式機制支援面向物件的程式設計和開發。 類是一類事物的抽象,它封裝了描述這類事物的共同屬性和行為的資料結構和方法。 C++中類的宣告(也又稱)式如下: class 類名 { 訪問範圍說明符:
受保護的成員變數和方法
用protected修飾的成員變數和方法被稱作受保護的成員變數和受保護方法。作用域當前類同一package子孫類其他packagepublic ✔✔✔✔protected✔✔✔✘friendly✔✔✘✘private✔✘✘✘
靜態方法中只允許訪問靜態數據,那麽,如何在靜態方法中訪問類的實例成員(即沒有附加static關鍵字的字段或方法)?
static關鍵字 實例成員 clas 靜態 image eth sys 靜態方法 http package test.two; public class jingtaihanshu { int x = 3; static int y
java中static特殊性和final(static成員直接被訪問,this不能用在static方法中,static不可訪問非static)
java的static關鍵字 java中,static修飾的成員變數和成員方法叫靜態變數和靜態方法,不依賴類特定的例項,被類的所有例項共享。 static的方法和變數可直接用類名訪問; java中,Static類方法和類變數,先於例項(物
定義一個包含私有成員變數和函式的類,再定義一個內部類,在內部類函式中訪問外部成員變數,並呼叫外部函式。在外部類函式中建立內部類物件,呼叫內部類函式
public class Test5 { //定義包含私有成員變數和函式 private int a = 201320883; private voi
關於模板類中,子類無法訪問父類成員問題的解決方法
問題: 今天研究資料結構,按著書敲程式碼,發現子類中直接呼叫父類成員居然無法通過編譯。 看了好久都沒發現問題,嘗試將父類private屬性改為public,發現也是不行。 解決辦法: 然後我想著用域作