導航:首頁 > 編程語言 > java調用私有方法

java調用私有方法

發布時間:2023-07-25 00:23:20

1. java類中方法private怎麼調用

私有方法,類外部是無法調用的,解決方法,一,修改為public方法,而,在類內部再添加一個public方法,該方法去調用私有,這樣就不用改動到原方法了

2. JAVA中重寫父類方法後,這個方法如何調用父類私有屬性方法

父類的私有屬性和方法是不被子類繼承調用的,如果你非要這么做可以
1、在父類中另外定義protected 的方法操作私有方法,子類調用該方法
2、將私有方法改為protected
3、使用反射,獲取父類所有方法,根據名稱調用

3. java 編程父類不能調用自己的私有方法

可以的,父類所有的東西子類都能繼承,但是私有方法就是繼承了,子類也不能調用。

4. java中, 怎麼調用別的類的私有方法

利用反射即可調用;
簡易實例代碼如下:
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

/**
* @author thomaslwq
* @version 創建時間:Sep 4, 2012 9:53:49 PM
* 類說明
*/
public class ReflectionTest {

public static void setObjectColor(Object obj) throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAcces***ception, InvocationTargetException{
Class cls = obj.getClass();
//獲得類的私有方法
Method method = cls.getDeclaredMethod("privateMethod", null);
method.setAccessible(true); //沒有設置就會報錯
//調用該方法
method.invoke(obj, null);
}
public static void main(String args[]) throws SecurityException, IllegalArgumentException, NoSuchMethodException, IllegalAcces***ception, InvocationTargetException{

setObjectColor(new MyTest());
}
}
//測試類
class MyTest{


public void setMyTest(){
System.out.println("setMyTest");
}
/**
類的私有方法
**/
private void privateMethod(){
System.out.println("調用了 private Method");
}

}

5. java中,怎麼調用別的類的私有方法

反射(reflection)
[java] view plain
public static void main(String[] args) throws Exception {

Constructor<?> constructor = SecretTool.class.getDeclaredConstructors()[0];
constructor.setAccessible(true);
SecretTool tool = (SecretTool) constructor.newInstance(); // 得到它的一個實例

for(Method method : SecretTool.class.getDeclaredMethods()) {
method.setAccessible(true);
if(method.getName().equals("myMotto")) {
method.invoke(tool); // 調用沒有返回值,無參的私有方法
} else if(method.getName().equals("calculate")) {
Integer result = (Integer)method.invoke(tool, 1,2);
System.out.println("1 + 2 = " + result.toString()); // 調用返回值為整數,且帶參的私有方法
}
}
}

輸出結果:
[plain] view plain
I like potato
1 + 2 = 3

6. JAVA中構造方法私有化的作用是什麼

構造方法是私有的,則意味著無法從除自身之外的任何類訪問它。這是Java提供的訪問控制機制。

使用得當,它可以產生安全性和功能性。構造函數(如常規方法)也可以聲明為私有。可能想知道為什麼需要一個私有構造函數,因為它只能從它自己的類訪問。

(6)java調用私有方法擴展閱讀:

工作原理

由四方面組成:

1,Java編程語言。

2,Java類文件格式。

3,Java虛擬機。

4,Java應用程序介面。

當編輯並運行一個Java程序時,需要同時涉及到這四種方面。使用文字編輯軟體(例如記事本、寫字板、UltraEdit等)或集成開發環境(Eclipse、MyEclipse等)在Java源文件中定義不同的類。

通過調用類(這些類實現了Java API)中的方法來訪問資源系統,把源文件編譯生成一種二進制中間碼,存儲在class文件中,然後再通過運行與操作系統平台環境相對應的Java虛擬機來運行class文件,執行編譯產生的位元組碼,調用class文件中實現的方法來滿足程序的Java API調用。

7. java中如何調用私有變數或方法

private關鍵字
(1)私有的意義,可以修飾成員變數和成員方法
(2)特點:
被private修飾的後的成員只能在本類中被訪問
(3)private的應用:
以後再寫一個類的時候:
把所有的成員變數給private了
提供對應的getXxx()/setXxx()方法
/*
封裝和private的應用:
A:把成員變數用private修飾
B:提高對應的getXxx()和setXxx()方法
*/
//定義學生類
class Student {
//姓名
private String name;
//年齡
private int age;
//姓名獲取值
public String getName() {
return name;
}
//姓名設置值
public void setName(String n) {
name = n;
}
//年齡獲取值
public int getAge() {
return age;
}
//年齡賦值
public void setAge(int a) {
age = a;
}
}
//測試類
class StudentTest {
public static void main(String[] args) {
//創建學生對象
Student s = new Student();
//使用成員變數
//錯誤:被私有修飾了,外界不能直接訪問了
//System.out.println(s.name+"---"+s.age);
System.out.println(s.getName()+"---"+s.getAge());
//給成員變數賦值
//s.name = "林青霞";
//s.age = 27;
//通過方法給賦值
s.setName("林青霞");
s.setAge(27);
System.out.println(s.getName()+"---"+s.getAge());
}
}

8. java 如何調用一個私有方法里的私有成員變數

package reflection;

import java.lang.reflect.Field;
import java.lang.reflect.Method;

/*
* 該類主要練習使用java的反射機制調用其他類的
* private方法和變數;
*/
public class MethodTest
{
public static void main(String[] args) throws Exception
{
Class<?> classType = People.class;
People p1 =(People) classType.newInstance();
// 獲取指定的方法,調用People類的私有方法;
Method method = classType.getDeclaredMethod("sayHello",
new Class[] { String.class });
method.setAccessible(true);//壓制java的訪問修飾符;
method.invoke(p1, new Object[]{"Mr zhou"});

//獲取People類的私有屬性;
Field field = classType.getDeclaredField("age");
field.setAccessible(true);
field.set(p1, 12);
System.out.println(field.get(p1));
}
}

class People
{
private int age;
private String name;

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;
}

private void sayHello(String str)
{
System.out.println("Hello: " + str);
}
}

9. java 一個類調用另一個類的private方法

Java調用private方法利用的是Java中的類反射機制 。
定義一個class,定義一個內部private方法:
public class PrivateTest {
private void print() {
System.out.println("this is a private method");
}
}
再定義一個class去訪問剛才定義的private方法,也就是print()如下
import java.lang.reflect.Method;

public class PrivateTest2 {
public static void main(String[] args) {
try {
Method method = PrivateTest.class.getDeclaredMethod("print", new Class[]{});
method.setAccessible(true);
Method.invoke(new PrivateTest(), new Object[] {});
} catch (Exception ex) {
System.out.println(ex.toString());
}
}
}
利用java的反射機制,即使是private方法,也可以被調用使用。

閱讀全文

與java調用私有方法相關的資料

熱點內容
奇跡文學APP為什麼不能用了 瀏覽:1000
怎麼用電腦玩手機版的我的世界伺服器 瀏覽:230
linux設備許可權 瀏覽:950
pdf轉曲軟體 瀏覽:149
雲伺服器怎麼做nas 瀏覽:457
有什麼可以提示快遞的app 瀏覽:311
什麼app的主題都是免費的 瀏覽:1002
se01加密路線和普通路線放 瀏覽:908
怎麼用安卓系統手機測量長度 瀏覽:46
回調突破主圖源碼 瀏覽:238
mc生存都市伺服器地址大全 瀏覽:92
unix網路編程環境搭建 瀏覽:963
pythonsocket高並發 瀏覽:257
python開發windowsgui 瀏覽:619
25減9的借位演算法 瀏覽:269
管家婆有必要加密狗嗎 瀏覽:907
電腦文件夾沒保存怎麼恢復 瀏覽:148
買燕窩什麼是溯源碼 瀏覽:586
安卓黨為什麼我不用iphone 瀏覽:266
固態繼電器單片機 瀏覽:980