java老师又要提问了,不会又要扣期末成绩,大神快来指点一下呀!不用解释太深,急求答案!!

java老师又要提问了,不会又要扣期末成绩,大神快来指点一下呀!不用解释太深,急求答案!!,第1张

1、答:如果成员变量是私有的那么,在类外肯定是不能直接访问这些私有变量的,如果想访问的话,那么就必须使用get、set访问器,

例如:

class A {

int num

public int getNum() {

return num

}

public void setNum(int num) {

this.num = num

}

}

class B {

public void test() {

A a = new A()

int num = a.getNum()

a.setNum(num + 3)

}

}

2.java的访问权限有四种,public,protected,默认,private

其中,默认访问权限是指没有指定访问权限的情况时的访问权限。此时定义的变量和方法,或者类可以被同一个包内的类访问,这是和C++中的 friendly

修饰符代表的权限相同(但是在java中没有friendly这个访问权限修饰符)。

针对每种访问权限修饰的变量,方法和类 的权限限定如下:

类: public,默认

变量和方法:public,protected,默认,private

public: 可以被 任何地方的别的类 访问

protected:可以被同一个package的类和该类的子类 访问

默认:只可以被同一个包内的类访问

private:只可以被自己访问

如果想在类外部访问使用它们,必须先实例化出对象,再调用!

3.a.构造方法 是类在创建实例时 new 动作时要执行的方法

b.如果类中没有定义构造方法 JAVA编译器会为类自动添加一个构造方法

c.造方法的名称必须与类名一样,而且构造方法没有返回值

d.当类中已经创建了构造方法,编译器就不再为类自动创建构造方法

 所以当创建一个带参数的构造方法后,必须同时要创建一个不带参数的构造方法

最近刚好遇到这个问题 ,要实现

android.os.SystemProperties.set()的反射需要3个条件

添加uses-permission权限

app签名与系统一致

AndroidManifest.xml中加入android:sharedUserId

package="com.example.xxx.test"

android:sharedUserId="android.uid.system">

class b {

 private String aa = "hello"

 private String bb = "world"

 private String cc = "xxx!"

}

public class a {

 public static void main(String[] args) throws ClassNotFoundException,

   IllegalArgumentException, IllegalAccessException,

   InstantiationException {

  Class c = Class.forName("b")

  Field[] fs = c.getDeclaredFields()

  Map map = new HashMap()

  for (int i = 0i <fs.lengthi++) {

   Field f = fs[i]

   f.setAccessible(true)

   map.put(f.getName(), f.get(c.newInstance()))

  }

  System.out.println(map)

 }

}

结果:


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/11171329.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存