大家好,今天小编关注到一个比较有意思的话题,就是关于private java语言的问题,于是小编就整理了5个相关介绍private Java语言的解答,让我们一起看看吧。
- java中抽象方法不能为private,final或者static,为什么?细细说明,或给个例子?
- private属性子类可以访问吗?
- 一个类里面什么时候用private,什么时候用public?
- 用java编写一程序,求解一元二次方程:aX2+bX+c=0。参数a、b及c从命令行做参数输入java?
- 既然Java反射可以访问和修改私有成员变量,那封装成private还有意义么?
JAVA中抽象方法不能为private,final或者static,为什么?细细说明,或给个例子?
两种角度看。从语法的角度看,就是禁止抽象的 static 方法。从设计的角度看,允许抽象类有抽象的 static 方法没有意义。
1. static 方法不是属于任何一个具体对象的,它不表示对象的行为,而抽象类是用于抽象属于此类对象的行为,而不是用来抽象类本身。
2. j***a中需要静态方法,主要原因是函数只能挂在类下面,像kotlin这种语言,因为函数可以和类平级,所以干脆禁止了static 成员。
private属性子类可以访问吗?
在面向对象编程中,子类可以访问父类的非私有(public)属性和方法。私有(private)属性或方法被设计为仅在它们所属的类内部可访问,因此子类无法直接访问父类的私有属性和方法。
如果父类中的某些功能需要被子类继承和重写,但又不想让子类直接访问其私有属性或方法,可以考虑将这些功能放在一个受保护(protected)的方法中,这样子类既可以继承和重写这个方法,但又无法直接访问私有属性或方法。
此外,有些编程语言(如C++和J***a)还提供了其他访问控制修饰符,如“default”(没有修饰符)或“protected”,这些修饰符也限制了子类对父类成员的访问权限。
总之,子类无法直接访问父类的私有属性或方法,但可以通过继承和重写父类中的受保护方法来实现类似的功能。
一个类里面什么时候用private,什么时候用public?
private可以修饰变量、构造器,方法、内部类;在变量前面加private 表示类的私有属性,只可以在类内部访问使用;当一个属性只希望类内部访问的时候,就使用private。 j***a中表示范围的修饰符 :public、protected、default、private。
用j***a编写一程序,求解一元二次方程:aX2+bX+c=0。参数a、b及c从命令行做参数输入j***a?
private static X fx (int a,int b,int c) throws Exception{
X x = new X();
double m = b*b - 4*a*c;
if(m>=0){
x.x1=(-1*b+Math.sqrt(m))/(2*a);
x.x2=(-1*b-Math.sqrt(m))/(2*a);
return x;
}
else throw new Exception("无解");
}
既然J***a反射可以访问和修改私有成员变量,那封装成private还有意义么?
C++申明为const常量,访问常量变量地址一样能修改内存数据,C++中声明为private,通过对象地址和便宜地址一样可以修改private成员。
这个应该这样来看,private修饰是J***a一开始就有的特性,是面相程序员的,而反射是后来才出现的功能,一开始是面向J***a语言的创建者,维护者的,是针对特殊情况的一种特殊处理手段,程序员使用的不多,后来才普及开来使用,所以并不会影响private的存在。
你没发现反射访问是很费力吗?,private的意义就在于没想让人访问,而J***A反射的开发在于实现这个功能而已,其实在开发之初也没想到你用反射只是为了访问一个私有的变量。
要从不同角度来看待private和反射。
private代表了封装,是面向对象的体现。而反射是j***a这门语言的特性之一,为了提供更加灵活和高级的操作。
所以框架一般会用到反射,用于做一些aop等。而我们的业务代码要面向对象编程,便于复用扩展维护。
换句话说,反射更加底层,底层是不需要oop的。
到此,以上就是小编对于private j***a语言的问题就介绍到这了,希望介绍关于private j***a语言的5点解答对大家有用。