① java 为什么service层 不要使用 this
this 是指的当前类 通常都会用 this.方法 来调用当前类的非静态方法
当你使用this默认就会创建一个当前类的对象 所以最好不要随便使用
service 一般是用来处理逻辑,实现接口的 一般也不会在 service 写什么工具方法 如果需要工具方法也是写在 工具类里面.
在编码规范里面 是 不让使用的,当然如果只是练习什么的 用不用都无所谓没什么 太大影响
② Java static方法里为什么不能使用this关键字
java中的static是类区域,换句话说就是所有该类的所有实例共享的区域,而专this指的是当前的类实例索属引。在类区域中是无法确定某个类实例的。
eg。
class A
{
private static Stirng Static = "123";
}
这个字符串Static所有A的实例都可以访问到。
反过来,
class A
{
public static void fun()
{
this // 这里不能使用 因为 static区域内不能确定是某个特定的A的实例
}
}
③ java:在java中为什么静态变量没有this引用
1、静态变量是可以用this引用的,这个在Java语法上应该是没有错的。如果你的静态变量不版能引用,可以看看是不是访权问权限的问题。如果是在类内部的方法中,是可以的。
2、由于静态变量是属于整个类的,所有类实例共享的。在虚拟机加载类的时候就已经分配了内存空间和初始值。所以,不建议用this变量去访问,因为this是类的一个实例变量,用类名去访问静态变量更加直观的表示出静态变量是整个类的。
④ Java中,在构造方法里调用本类中的方法是不是可以省略this
在本类的任何地方调用本类的非静态方法都可以省略this
但是一般大家不这么做,因为写了显得思路更清晰,大家看起来更好懂
⑤ java里面的this.在什么情况下可以省略吧,哪位大神可以帮我下啊!
没有局部变量与this指向的变量重名时可以省略。
⑥ JAVA函数中加和不加this的区别
对于当前a()方法没有影响,也没有区别;
为什么没有区别?
因为a方法中没有变量名为b、c、d的变量,这三个变量应该都是当前类中声明的变量(或者父类中的),那么在使用的时候加与不加关键字this,对结果没有影响。
你可能会问,什么时候有区别?也可能会问,什么是父类中的?
请追问,我原本把问题答案写好了,但是不知道为啥突然没了
注:当方法中没有声明指定的变量(例如变量b),或者方法中没有指定的变量参数(例如变量b)。那么在方法中使用变量b(书写:“b”),java语言便会默认成 “this.b”(前提是,类中声明了变量b ,或者该类继承到了变量b)。
⑦ java 父类普通方法中调用重写方法,省略的this代表的是谁,希望提供完整说明
内存中怎么执行 只有 写 jvm 的才能说明百!
我只说下简单的 流程, 首先, 你的 Zi 写了继承Fu, 所以 Fu 中的 代码都会被继承到 Zi 中。
然后 你的Zi 重写了 Fu 中的doSome ,当java 代码执行的时候 首先会搜索 自己 的类中有没有,如果有 就执行自己的,如果没有就到父类中去找,如果还没有 就到父类的父类中去找。。。等。。。。
在 你上面的代码中可以看到 明显的 在 Zi 走就有 所以执行 show 之后 就打印了zi,虽然你的 show 是父类中的一个方法,你只要记住是从 自类向父类搜索就可以了。
你可能纠结为什么是 zi 而不是 fu 还是之前说的,应为你是 重写 ! 重写和覆盖是有区别的。
具体的可以看 http://www.xiaoyuno.org/article/99/
你的问题是 重写和覆盖的问题 和有么有 this 没有半点关系,不信的话你写上this 和不写this 都执行以下就清楚明白了