① java中,protect和protected的区别
没有 protect
C++中也没有protect
只有protected
为什么呢?问英语吧
protectd(have been protected,已经被保护起来了)
(哈哈……)
② public和protect在java中的效果分别是怎么样的
public 是权限最大的访问级别,简单说就是都可以访问被其修饰的字段或方法。
protected 语义是受保护的,被其修饰的字段或方法,只有在该类与子类中可以访问。不管是否在同一个包里。
其次是默认权限,被其修饰的字段或方法,只有在该类与同包子类可以访问。
最后就是private ,私有的,这个就不用解释了吧!
③ java用protect声明多个变量需要加括号吗
需要。java用protect多个变量需要用括号打包,protect前面加%,如果需要显示%,则使用%,有多个变量输出,那么需要将后面的变量或者值用括号括起来。
④ JAVA中protected的作用
1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用
2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。
3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。
作用域 当前类 同一package 子孙类 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
⑤ JAVA 中public private protect 的区别
public--都可访问(公有)
private--类内可访问(私有)
protected--包内和子类可访问(保护)
不写(default)--包内可访问 (默认)
public>protected>default>private
⑥ java什么时候使用private public protect static
一.Java访问权限饰词(access specifiers)
Java有public、protect、friendly、private四种访问权限,并且这四访问权限的访问范围越来越小。
1. friendly
1) 果一个class内的数据成员或方法没有任何权限饰词,那么它的缺省访问权限就是friendly。同一个package内的其它所有classes都可以访问friendly成员,但对package以外的classes则形同private。
2)对于同一个文件夹下的、没有用package的classes,Java会自动将这些classes初见为隶属于该目录的default package,可以相互调用class中的friendly成员。如以下两个class分别在同一个文件夹的两个文件中,虽然没有引入package, 但隶属于相同的default package。
class Sundae{
//以下两个方法缺省为friendly
Sundae(){}
Void f() {System.out.println(“Sundae.f()”);
}
public class IceCream{
public static void main(String[] args){
Sundae x = new Sundae();
x.f();
}
}
2. public:可以被任何class调用
3. private:private成员只能在成员所属的class内被调用,如:
class Sundae{
private Sundae(){}//只能在Sundae class中被调用
Sundae(int i) {}
static Sundae makASundae() {
return new Sundae();
}
}
public class IceCream{
public static void main(String[] args){
// Sundae class中构造函数Sundae()是private,
// 所以不能用它进行初始化
//Sundae x = new Sundae();
Sundae y = new Sundae(1);//Sundae(int)是friendly,可以在此调用
Sundae z = Sundae.makASundae();
}
}
4. protected:具有friendly访问权限的同时,又能被subclass(当然包括子孙类,即子类的子类)所访问。即,既能被同一package中的classes访问,又能被protected成员所在class的subclass访问。
二.Class的访问权限
1.Class同样具有public、protect、friendly、private四种访问访问权限:
1)public:在任何地方都可被使用
2)protect、private:除了它自己,没有任何class可以使用,所以class不能是
protected或private(inner class除外)
3) friendly:同一个package中的classes能用
2. 如何调用构造函数被声明为private的class
1) 用static函数
2) 用Singteton模式
class Soup{
private Soup(){}
//(1)静态函数方法
public static Soup makeSout(){
return new Soup();
}
//(2)The "Singleton" pattern:
private static Soup ps1 = new Soup();
public static Soup access(){
return ps1;
}
public void f(String msg){
System.out.println("f(" + msg + ")");
}
}
public class Lunch{
public static void main(String[] args){
//Soup priv1 = new Soup();编译错误
Soup priv2 = Soup.makeSout();
Soup priv3 = Soup.access();
priv2.f("priv2");
priv3.f("priv3");
}
⑦ JAVA中类表示符 PROTECT和默认的有什么区别 貌似访问权限差不多的 都本包可见
protected,可以在同一个类、同一个包、不同包中的子类访问
默认:在同一个类、同一个包中访问,区别在最后一点,不能在子类中访问。
⑧ 为什么java中被protect修饰的方法一般是被设计用来子类重写的
private吧,子类不可见,显然无法override;public吧,又到处可见,所以一般只为提供API调用。
那就剩下protected了。
⑨ java protect的方法子类可以修改吗,如果能,怎么让子类只能调用父类方法而不能修改呢
不能修改,可以被继承,重写
子类不重写,或者重写方法里面使用super.父类方法