第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Java逆向基礎(chǔ)之簡單類

標(biāo)簽:
Java


简单类

例子

public class test {	public static int a;	private static int b;	public test() {		a = 0;		b = 0;	}	public static void set_a(int input) {		a = input;	}	public static int get_a() {		return a;	}	public static void set_b(int input) {		b = input;	}	public static int get_b() {		return b;	}}

编译

javac test.java


反编译

javap -c -verbose test.class

构造方法,把所有的静态成员变量设置成0

  public test();    descriptor: ()V    flags: ACC_PUBLIC    Code:      stack=1, locals=1, args_size=1         0: aload_0         1: invokespecial #1                  // Method java/lang/Object."<init>":()V         4: iconst_0         5: putstatic     #2                  // Field a:I         8: iconst_0         9: putstatic     #3                  // Field b:I        12: return

a的setter方法

  public static void set_a(int);    descriptor: (I)V    flags: ACC_PUBLIC, ACC_STATIC    Code:      stack=1, locals=1, args_size=1         0: iload_0         1: putstatic     #2                  // Field a:I         4: return

a的getter方法

  public static int get_a();    descriptor: ()I    flags: ACC_PUBLIC, ACC_STATIC    Code:      stack=1, locals=0, args_size=0         0: getstatic     #2                  // Field a:I         3: ireturn

b的setter方法

 public static void set_b(int);    descriptor: (I)V    flags: ACC_PUBLIC, ACC_STATIC    Code:      stack=1, locals=1, args_size=1         0: iload_0         1: putstatic     #3                  // Field b:I         4: return

b的getter方法

  public static int get_b();    descriptor: ()I    flags: ACC_PUBLIC, ACC_STATIC    Code:      stack=1, locals=0, args_size=0         0: getstatic     #3                  // Field b:I         3: ireturn

无论这个类的成员变量是公有还是私有,代码执行起来没有区别,但是成员变量的类型信息会显示再class文件中,在其他任何文件中都不能直接访问到类的私有成员变量。


接下来我们创建一个对象去调用其中的方法

//ex1.java

public class ex1 {	public static void main(String[] args) {		test obj = new test();		obj.set_a(1234);		System.out.println(obj.a);	}}

反编译

  public static void main(java.lang.String[]);    descriptor: ([Ljava/lang/String;)V    flags: ACC_PUBLIC, ACC_STATIC    Code:      stack=2, locals=2, args_size=1         0: new           #2                  // class test         3: dup         4: invokespecial #3                  // Method test."<init>":()V         7: astore_1         8: aload_1         9: pop        10: sipush        1234        13: invokestatic  #4                  // Method test.set_a:(I)V        16: getstatic     #5                  // Field java/lang/System.out:Ljava/io/PrintStream;        19: aload_1        20: pop        21: getstatic     #6                  // Field test.a:I        24: invokevirtual #7                  // Method java/io/PrintStream.println:(I)V        27: return

new指令创建了一个对象,但是没有调用其中的构造方法(构造方法在偏移块4中调用了)

偏移块14调用了set_a()方法

偏移块21访问了test类中的成员变量a


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消