java类私有
㈠ 在java中能用private修饰类吗
一般的类是不能用private修饰,类的可见性最少是包可见的,也就是默认的,不加任何修饰。
但是有一种特殊的情况,内部类是可以用private修饰的!不让类以外的其他类访问!这个问题在《java核心技术》里有讲!
Java的外部类为什么不能使用private、protected进行修饰?
对于顶级类(外部类)来说,只有两种修饰符:public和默认(default)。因为外部类的上一单元是包,所以外部类只有两个作用域:同包,任何位置。
因此,只需要两种控制权限:包控制权限和公开访问权限,也就对应两种控制修饰符:public和默认(default)。
如果类使用了private修饰符,说明是个内部类。内部类的上一级是外部类,那么对应的有四种访问控制修饰符:本类(private),同包(default),父子类(protected),任何位置(public)。
当一个内部类使用了private修饰后,只能在该类的外部类内部使用。可以想一下,一个java项目是不可能在一个class里面完成的。
mvc模式中,是把类分为三层,一层层调用类。如果定义为私有的和受保护的就无法调用。换句话说,对于一个java文件,要么就是自己单独运行,要么就是被其他程序作为库调用。
如果一个java文件的类被private修饰,那么是不是其他的程序或是类是无法使用它的,那么他作为一个单独的文件就没啥用了。
如果它作为单个文件运行,类加载怎么找到它呢,因为它对外不可见。同时,也失去了类的存在意义。因此,类只有public和默认修饰符。
㈡ JAVA中的私有和PUBLIC公有是什么意思
public是公共的意思,是共有的,在同一项目,同一包中,同一累中,子类等都可以对它进行访问;
private是私有的意思,只能在本类中使用,别的类要是对其操作只能通过set和get方法来进行。
㈢ JAVA如何调用类的私有成员public和private如何区分使用!!!!
若是调用私有变量,则可以在类中定义get()方法,即返回值就是你想得到的那个变量。Java中一般把变量(属性)定义成私有的,把方法定义成公有的。public定义的属性或方法在子类中可以调用,而private定义的属性或方法在子类中不可以调用。
㈣ java,java class里面的变量默认是私有吗
你定义成double也没问题啊,但如果数据库中是double,model里面是float就有问题,不过这倒没什么规定,关键是你要清楚,double变成float是要损失精度的。
原则上保证数据不会有损失就好。
㈤ java 有没有 私有类
java中有私有内部类,即在一个普通Java类里创建一个private的class。
用途:如果一个内部类只希望被外部类中的方法操作,那么可以使用private声明内部类,访问时必须在Out类里面生成In类的对象进行操作,此时的内部类只有外部类可控制。
私有内部类举例:
classOut{
privateintage=12;
privateclassIn{
publicvoidprint(){
System.out.println(age);
}
}
publicvoidoutPrint(){
newIn().print();
}
}
publicclassDemo{
publicstaticvoidmain(String[]args){
//此方法无效
/*
Out.Inin=newOut().newIn();
in.print();
*/
Outout=newOut();
out.outPrint();
}
}
㈥ java 封装性 为什么要把类的属性设置成私有的
我们来谈谈封装的思想:
封装就是将属性私有化,提供公有的方法访问私有的属性。
*实现封装的步骤:
(1)修改属性的可见性来限制对属性的访问。
(2)为每个属性创建一对赋值方法和取值方法,用于对这些属性的访问。
(3)在赋值和取值方法中,加入对属性的存取限制。
**为了实现良好的封装性,我们通常将类的成员变量声明为private,再通过
public的方法来对这个变量进行访问。对一个变量的操作,一般都有读取和
赋值操作,我们分别定义两个方法来实现这两种操作,一个是getxxx()(xxx
表示要访问的成员变量的名字),用来读取这个成员变量操作,另外一个是
setxxx()用来对这个成员变量赋值。
**如果外面的程序可以随意修改一个类的成员变量,会造成不可预料的程序错误,
就象一个人的身高,不能被外部随意修改,只能通过各种摄取营养的方法去修
改这个属性。
public
class
accpteacher{
private
string
name;
private
int
age;
public
string
getname(){
return
name;
}
public
void
setname(string
name){
this.name
=
name;
}
public
int
getage(){
return
name;
}
public
void
setname(string
age){
if(age<22){
system.out.println("年龄不符合,太小!");
}else{
this.age
=
age;
}
}
}
****封装的优点:
(1)隐藏类的实现细节;
(2)让使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制
逻辑,限制对属性的不合理操作;
(3)便于修改,增强代码的可维护性;
看我这个你应该明白为什么要将属性私有化。
㈦ java中类的字段为什么都要设为私有的
字段设为私有,是满足面向对象中封装性,
一个类不建议允许直接获取到另一个类的字段,
同时也不建议直接把自身字段暴露给另一个类,
本质上其实是为了隐藏具体实现,
同时,用get或者set方法来获取或者设置的话,可以在该方法中添加一些简单的验证逻辑,
比方说有个学生类,其中有个年龄字段,如果直接做成public的话,那么这个年龄字段可以设置为负值,
但是你做成了set方法的时候,你调用set设置年龄,那么你可以在set方法中去对为负数的年龄进行验证处理
Java面向对象类和类之间的关系教程:
㈧ java 定义私有类
public
class
a{
private
int
b;
protected
int
c;
}
在别的类里
a
aa=new
a();
这时候aa.
是没有东西的
不能访问private
修饰的东西
假如有一个类extends
a
继承了a
类
这是就可以this.c
protected
修饰的
只能子类
或自己访问
㈨ java怎么 定义私有类(private) 和 受保护的类 (protected )
只有类文件内部的类可以设置protected/private。
如果你在程序中这样写就会报错:
private class Protected
{
protected String s = "Thinking in Java.";
}
应该这样用:
public class Test
{
public static void main(String[] args)
{
........
}
private class Protected
{
protected String s = "Thinking in Java.";
}
}
就是说,定义在一个类文件内部的privte或者protected才是有效的
㈩ ****JAVA中类的对象为何可以调用该类的私有成员
当然可以
私有成员,就是供本类使用的类型,其他类是看不到的啊
java中
类的对象的创建也是有范围的,不是都可以创建的!!
在java中,即使别的类
得到了该类的对象,也是无法访问该类的私有成员的!私有成员,只供本类使用