java中的权限
㈠ java如何做权限管理
思路:
1、用户表 user;
2、角色表 role;
3、菜单 menu;
4、角色菜单权限表 role_menu;
5、用户菜单权限表 user_menu;
㈡ java如何设置文件的权限
在Java中,文件权限是非常具体的操作系统:* nix中,NTFS(Windows)及FAT/FAT32,都有着别样的文件权限。 Java提供了一些通用的文件权限来处理它。
检查文件权限允许:
1.file.canExecute(); – 返回true,文件是可执行的,false 则不是。
2.file.canWrite(); – 返回true,文件是可写的,false 则不是。
3.file.canRead(); – 返回true,文件是可读的,false 则不是。
设置文件权限:
1.file.setExecutable(boolean); – true允许执行操作; false则是禁止它。
2.file.setReadable(boolean); – true允许读操作; false则是禁止它。
3.file.setWritable(boolean); – true允许写操作; false则是禁止它。
在* nix的系统中,可能需要配置有关文件权限的详细指定,例如设置777权限的文件或目录,但是,Java的IO类没有现成的方法,但你可以使用下面的解决方法:
Runtime.getRuntime().exec("chmod 777 file");文件权限的例子
import java.io.File;
import java.io.IOException;
/×
×只能给当前用户赋予对该文件的权限,调用createNewFile()方法默认的权限是644.
×/
public class FilePermission
{
public static void main( String[] args )
{
try {
File file = new File("/home/test3.txt");
if (file.createNewFile()){
System.out.println("File is created!");
//Runtime.getRuntime().exec("chmod 777 /home/test3.txt");
file.setExecutable(true);//设置可执行权限
file.setReadable(true);//设置可读权限
file.setWritable(true);//设置可写权限
System.out.println("is execute allow : " + file.canExecute());
System.out.println("is read allow : " + file.canRead());
System.out.println("is write allow : " + file.canWrite());
}else{
System.out.println("File already exists.");
}
} catch (IOException e) {
e.printStackTrace();
}
}
㈢ java访问权限是什么
1、private修饰词,表示成员是私有的,只有自身可以访问;
2、protected,表示受保护权限,体现在继承,即子类可以访问父类受保护成员,同时相同包内的其他类也可以访问protected成员。
3、无修饰词(默认),表示包访问权限(friendly, java语言中是没有friendly这个修饰符的,这样称呼应该是来源于c++ ),同一个包内可以访问,访问权限是包级访问权限;
4、public修饰词,表示成员是公开的,所有其他类都可以访问;
5、类的访问限制,仅有public和包访问权限;
a、一个Java文件只能有一个public类
b、public类的名称必须同Java文件名完全一致
c、若Java文件中没有public类,则文件名可以任意
6、final关键字
a、final数据成员,使用前总是被初始化并被强制要求在定义处或构造器中赋值;一旦赋值后,对于基本类型其值会恒定不变,而对于对象引用会始终指向赋值的对象,但指向对象自身是可以修改的;
b、final参数,对于基本类型表示无法改变参数的值,对于对象引用表示无法改变引用所指的对象;
c、final方法,保证方法不会在继承后修改和重载;所有的private方法都隐含式final的;Java中使用动态绑定(后期绑定)实现多态,除了static和final方法是使用前期绑定的;
d、final类,表示该类不可被继承。
㈣ 什么是Java类的访问权限
在解释访问权限控制之前,先看一个场景。在学生信息管理系统中,有两个类,分别是学生类和课程类,课程类提供了课程表和课程安排两个方法,学生类可以调用课程类提供的课程表查看课程安排,但不能调用课程安排方法,该如何处理,此时就可以利用访问权限来进行控制。
在Java中,提供了四种访问权限控制:默认访问权限(包访问权限),public,private以及protected。
默认访问权限(default):即不加任何访问修饰符,通常称为“默认访问模式“。该模式下,只允许在同一个包中进行访问。
private: 对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。
protect: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护的”。被其修饰的类、属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。
public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。下表列出了四种访问权限的控制粒度:
packagecom.cxh.test1;
classPeople{//默认访问权限(包访问权限)
privateStringname=null;
publicPeople(Stringname)
{
this.name=name;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname)
{
this.name=name;
}
}
从代码可以看出,修饰People类采用的是默认访问权限,而由于People类和Main类在同一个包中,因此People类对于Main类是可见的。
㈤ 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中目前学习涉及到的四种权限修饰符都有什么并说明各自的权限范围
(1)public : 公共权限
修饰对象: 修饰类、方法、属性
继承: 被public所修饰的成员能被该类的所有子类继承下来。
作用域: 可以被任意类访问
public能用来修饰类,在一个java源文件中只能有一个类被声明为public,而且一旦有一个类为public,那这个java源文件的文件名就必须要和这个被public所修饰的类的类名相同,否则编译不能通过。说到这里,穿插多一点知识。一个类作为外部类的时候只能被public或者默认访问修饰符所修饰,但是一个类如果作为内部类的时候,则可以被四种访问修饰符所修饰,因为一个类作为内部类的时候,就作为外部类的一个成员属性了,因此可以有四种访问修饰符修饰,这是内部类和外部类的一个区别。
public用来修饰类中成员(变量和方法),被public所修饰的成员可以在任何类中都能被访问到。通过操作该类的对象能随意访问public成员。
public在类的继承上的体现,被public所修饰的成员能被所有的子类继承下来。
(2)protected:受保护的权限
修饰对象:修饰内部类,接口,属性,方法
继承: 被protected所修饰的成员能被该类的所有子类继承下来。
作用域: 可以被同包类访问,如果不是同包,必须是该类的子类才能访问
(3)default : 同包权限(默认,缺省的)
修饰对象:修饰类,属性,方法。
继承:被default所修饰的成员只能被该类所在同一个package中的子类所继承下来。(也就是说只有在同一个package中的子类才能访问到父类中default修饰的成员)
作用域: 只能被同包的类访问
(4) private : 私有权限
修饰对象 : 内部类,属性,方法
作用域: 只能在本类中使用
注意:
(1)protected不能修饰类。
(2)priavte可以修饰类,但是该类必须是一个内部类。
在定义类时,推荐访问控制级别从严处理:
(1) 如果不允许外部直接通过 new 创建对象,构造方法必须是 private。
(2)工具类不允许有 public 或 default 构造方法。
(3)类非 static 成员变量并且与子类共享,必须是 protected。
(4)类非static成员变量并且仅在本类使用,必须是private。
(5)类 static 成员变量如果仅在本类使用,必须是 private。
(6)若是 static 成员变量,必须考虑是否为 final。
(7)类成员方法只供类内部调用,必须是 private。
(8)类成员方法只对继承类公开,那么限制为 protected。
㈦ Java访问控制权限有哪些
java中成员的访问权限共有四种,其中三种有访问权限修饰词:public,protected,private。
Public:权限最大,允许所有类访问,但其他包下的类想要访问需使用import关键字将这些public类导入包中才可使用,换句话说,import将不同包的类导入到一个包下,从而转化为包访问权限下的情况。
Protected:除了提供包访问权限以外,还对继承该类的所有派生类赋予访问权限。
Private:权限最小,只能由包含该成员(域和方法)的类本身访问,其他任何类都无法访问。
不使用这三个关键词时,则提供默认包访问权限,该权限只允许同一个包下(即同一个目录下的Java文件)的类访问该类。
注意:private和protected只能修饰成员,无法修饰类。类要么是public的,要么是包访问权限。
㈧ java中四种访问权限在同类体中,同一包中,不同包中的权限范围
1. public 表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用。
2. private 表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。
3. protected 对于子女、朋友来说,就是public 的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private 。
4. friendly修饰的类叫友元类,在另外一个类中使用友好类创建对象时,要保证它们在同一包中,就是说在一个包内的类互为友元类。