java高手来 关于权限问题

java高手来 关于权限问题,第1张

1、这是OA系统中的用户权限的表的设计。

2、一般分为5张表来解决,

用户表、权限表、角色表、用户角色表、角色权限表。

这样就可以使用户、权限、角色很好的分离管理了。

再思考下吧。

不是的,

里面的变量也可以是private

访问权限这个问题很好理解

如果变量是public的,那么其他的类就可以直接调用

如果是private的,那么要通过set和get方法来获得变量

一般都推荐把变量设置为private,然后通过set和get获取

方法就要根据具体情况而言了

默认访问权限(包访问权限):如果一个类的方法或变量被包访问权限修饰,也就意味着只能在同一个包中的其他类中显示地调用该类的方法或者变量,在不同包中的类中不能显示地调用该类的方法或变量。

private:如果一个类的方法或者变量被private修饰,那么这个类的方法或者变量只能在该类本身中被访问,在类外以及其他类中都不能显示地进行访问。

protected:如果一个类的方法或者变量被protected修饰,对于同一个包的类,这个类的方法或变量是可以被访问的。对于不同包的类,只有继承于该类的类才可以访问到该类的方法或者变量。

public:被public修饰的方法或者变量,在任何地方都是可见的。

其实最简单的方法就是使用角色和用户两级管理

首先建立角色:分为管理员和普通用户等,管理员用来管理系统的后台,而普通用户就是注册用户,可以实现浏览商品、管理个人信息等 *** 作!

其次为用户分配角色,实现分配使用系统模块的权限。

角色权限的分配通过一张数据库权限表来实现。把系统的功能模块的使用权限设置为表的字段,然后为每个角色分配权限,1代表有权限,0代表无权限。可以设置一个辅助字段为是否登录,通过该字段判断用户是否可以修改个人信息。

可以肯定,这个程序一定报错,如楼主所说:“The

field

clone1name

is

not

visible”,也就是说这个区域中的name这个属性是不可见的。

因为protected属于受保护的访问权限,一个类中的成员如果使用了protected访问权限,则只能被本包及不同包的子类访问。

很显然你的两个类不在同一个包,就因该用子类的实例对象访问,而你却在包含子类的包中中实例化了父类对象,你可能在想,我明明是在子类中实例化了父类对象,我要访问我自己的成员还不行吗?。。可你要想清楚,你的父类并不在这个包。(这时你在子类的包中用父类的实例化对象访问用protected修饰的属性,它压根就找不到,所以会报出不可见的错误)所以你必须用Clone2

c

=

new

Clone2();cname;或是用匿名对象

new

Clone2()name;(其实是子类的一个匿名对象)访问。

以上就是关于java高手来 关于权限问题全部的内容,包括:java高手来 关于权限问题、关于java访问权限的问题:如果一个类被申明为public类,那么这个类中的方法和变量都、java访问权限控制问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9398941.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存