
看谁的方法了
如果是普通方法,就是用this
如果是static标识的,那就用当前类
如果是native,那你得找jni关联的c代码
1、JAVA 获取当前实时时间或日期,都可以通过 javautilDate 类来获取。
2、调用 new javautilDate()getTime(); 这个方法获取的就是当前的时间,然后根据需要在进行格式化显示,格式化类为:SimpleDateFormat。
3、具体的代码如下图所示。
那么纠结哈,你把new出来的p和p1看成一个对象,p本身指向一个点,
pgetDistance(p1);语句:p调用getDistance(p1);方法的时候,你就理解成把p1传过来,和p比较(在这里是距离),你那样想就把自己搞晕了,传过来也是和自己相互比较,你要学会用面向对象的思维想,把p 和p1看成对象,希望对你有助。
抽象类: 动物 有方法 cry();
具体类1: 猫 extends 动物 实现方法cry()
具体类2: 狗 extends 动物 实现方法cry()
动物 dog = new 狗();
动物 cat = new 猫();
catcry();//结果是喵喵~ 叫
dogcry();//结虹是旺旺~ 叫
由于dog是new 出来的是狗 而cat是new出来的猫,所以虽然大家都属于动物,但其实不是同一种动物。 并且想让狗学猫叫,猫学狗叫是不可能的
动物 dog=new 狗(); 其实相当于理解成以下两条语句
1。狗 dg = new 狗();
2。动物 dog=(动物)dg;//将dg的狗类型转化成了动物类型
所以调用时当然只会调用狗的方法旺旺旺,而不会去调用其它动物的方法!
所以问题的关键在于生成时是 new 狗还是new 猫! 因为动物是不能被new出来的(抽象类不能实例化)所以我们就能分出执行的是哪个方法;
请参考
方法有四种类型public protect default private(在类内部使用时 ,这四种都可以用方法名称直接调用)
你这里说的两种方法的调用是public方法的类外部调用方式
super,调用父类的方法
this调用对象自己的方法
Java中要用到反射,首先就必须要获取到对应的class对象,在Java中有三种方法获取类对应的class对象。
1、通过类的class属性
2、通过类实例的getClass()方法获取
3、通过ClassforName(String className)方法获取
现在比如在package下有个类Calculator
public class Calculator{public double add(double score1,double score2){
return score1 + score2;
}
public void print(){
Systemoutprintln("OK");
}
public static double mul(double score1,double score2){
return score1 score2;
}
}public class CalculatorTest {
public static void main(String[] args) throws Exception {
//通过类的class属性获取
Class<Calculator> clz = Calculatorclass;
//或者通过类的完整路径获取,这个方法由于不能确定传入的路径是否正确,这个方法会抛ClassNotFoundException
// Class<Calculator> clz = ClassforName("testCalculator");
//或者new一个实例,然后通过实例的getClass()方法获取
// Calculator s = new Calculator();
// Class<Calculator> clz = sgetClass();
//1 获取类中带有方法签名的mul方法,getMethod第一个参数为方法名,第二个参数为mul的参数类型数组
Method method = clzgetMethod("mul", new Class[]{doubleclass,doubleclass});
//invoke 方法的第一个参数是被调用的对象,这里是静态方法故为null,第二个参数为给将被调用的方法传入的参数
Object result = methodinvoke(null, new Object[]{20,25});
//如果方法mul是私有的private方法,按照上面的方法去调用则会产生异常NoSuchMethodException,这时必须改变其访问属性
//methodsetAccessible(true);//私有的方法通过发射可以修改其访问权限
Systemoutprintln(result);//结果为50
//2 获取类中的非静态方法
Method method_2 = clzgetMethod("add", new Class[]{doubleclass,doubleclass});
//这是实例方法必须在一个对象上执行
Object result_2 = method_2invoke(new Calculator(), new Object[]{20,25});
Systemoutprintln(result_2);//45
//3 获取没有方法签名的方法print
Method method_3 = clzgetMethod("print", new Class[]{});
Object result_3 = method_3invoke(new Calculator(), null);//result_3为null,该方法不返回结果
}
}
以上就是关于java中,怎么在一个方法里面获得调用此方法的对象全部的内容,包括:java中,怎么在一个方法里面获得调用此方法的对象、java调用实时时间的有方法吗、java 方法调用方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)