Day7 访问权限
构造者模式思想
进行初始化,解决了多个构造器重载,构造器参数过多记不住的情况。
package day7;//声明一个程序包
class Employee{
private String name;
private int no;
private int age;
private String sex;
private String address;
//alt + shift + s public int getNo() {
return no;
}
/* public Employee() {
}*/ public Employee setNo(int no) {
this.no = no;
return this;
}
public String getName() {
return name;
}
public Employee setName(String name) {
this.name = name;
return this;
}
public int getAge() {
return age;
}
public Employee setAge(int age) {
this.age = age;
return this;
}
public String getSex() {
return sex;
}
public Employee setSex(String sex) {
this.sex = sex;
return this;
}
public String getAddress() {
return address;
}
public Employee setAddress(String address) {
this.address = address;
return this;
}
/* public Employee(String name, int no, int age, String sex, String address) {
this.name = name;
this.no = no;
this.age = age;
this.sex = sex;
this.address = address;
}*/
public void show() {
System.out.println(no+","+name+","+age+","+sex+","+address);
}
}
public class TestEmployee { public static void main(String[] args) {
/* Employee tom = new Employee("Tom",12,33,"男","上海");
tom.show();*/
/*构造者模式思想 :进行 初始化。解决了 多个构造器重载 ,构造器 参数过多 记不住的情况*/
Employee tom = new Employee().setNo().setAddress("北京").setAge().setSex("男").setName("Tom");
tom.show();
} }
包
package day7;//声明一个程序包,必须放在文件的第一行
层次结构
package 父包[.子包.······];
包名:小写字母;通常是域名反转.部门名.项目名
包的好处
1.管理类和接口
2.防止命名冲突
3.封装,通过权限的控制,更好的
不同程序包下的类的方法访问方式
1.导入程序包
import b.Exam2;//导入b包下的类型Exam2
import b.*;//不能导入子包
import b.c.Exam3;//导入子包下的类型
2.用完全限定命名的方式
b.Exam2 e2 = new b.Exam2();
注意:两个包下有相同的类型,必须用完全限定命名的方式进行。
访问修饰符
Java将类成员的可见度分为四个种类:

创建类的时候只有两种:public和默认
static
static是一个修饰符
应用:可以用于修饰属性,方法,块,类
静态变量
class 类名{
//静态成员变量,类变量
public static 数据类型 变量名;
}
package day7;
class Child{
static int count;
}
public class TestChild {
public static void main(String[] args) {
Child a = new Child();
Child b = new Child();
//count被所有对象共享
a.count ++;
b.count ++;
System.out.println(a.count);
System.out.println(b.count);
}
}

静态变量随着类的创建的而存在,优先于对象存在。
静态变量(类变量)
属于类的,被所有对象所共享,优先于对象而存在的。
使用
类名.静态变量名
对象名.静态变量名//少用,容易混淆
静态变量和实例变量的区别
1.静态:类加载的时候就加载了,就创建了,就分配空间默认初始化了
实例:对象创建的时候,才能创建;
2.静态:属于类的,存在于方法区中的。
实例:属于对象。存在于堆中。
3.静态:声明周期很长,类销毁的时候,才回释放。
实例:对象销毁,会释放。
静态变量的应用场合
当数据共享时,使用。
当不需要对象,或无法创建对象时使用。
静态块
在类中定义
static{
作用:初始化类的,给类变量初始化,静态变量
}
局部代码块
定义:在方法中定义
public void show(){
{
局部代码块
作用:用来控制局部变量生命周期和使用范围。
}
}
静态方法
静态方法中只能访问静态成员。
静态方法中不能使用this,super关键字。super可能访问到非静态的成员。
静态方法和实例方法的区别
1.静态:属于类,用类名直接调用
实例: 属于对象调用。
2.静态:只能直接访问静态成员(静态变量,静态方法)
实例:可以直接访问静态的和非静态的
3.静态:不能使用this,super。
实例:可以使用this,super。
应用场合
当不用创建对象访问,形式简单或者不能创建对象,那么就要用静态的方法了
静态导入
导入的是类中的静态成员,导入之后可以直接使用。
格式
import static 包名.类名.静态变量名(方法);
单例模式
对类只能创建一个对象
饿汉模式
类加载时,静态变量就存储了一个对象
package day7;
class Window{
private static Window win = new Window();
private Window() {
}
public static Window getInstance() {
return win;
}
}
public class TestWindow {
public static void main(String[] args) {
Window win = Window.getInstance();
Window win1 = Window.getInstance();
System.out.println(win);
System.out.println(win1);
}
}
输出结果
day7.Window@7852e922
day7.Window@7852e922
懒汉模式
类加载时,没有指定对象,只有在应用的时候才去创建对象,多线程的环境时,推荐使用饿汉式,因为是线
程安全的。
package day7;
class Window{
private static Window win = null;
private Window() {
}
public static Window getInstance() {
if(win == null) {
win = new Window();
}
return win;
}
}
public class TestWindow {
public static void main(String[] args) {
Window win = Window.getInstance();
Window win1 = Window.getInstance();
System.out.println(win);
System.out.println(win1);
}
}
返回结果
day7.Window@7852e922
day7.Window@7852e922
API之Math类
常用方法

package day7;
public class TestMath {
public static void main(String[] args) {
// Math
System.out.println(Math.abs(‐33.4));//33.4
//大于等于44.6的最小整数‐》double
System.out.println(Math.ceil(44.6));//45.0
//小于等于44.6的最大整数‐》double
System.out.println(Math.floor(44.6));//44.0
//四舍五入为一个long数字
System.out.println(Math.round(44.6));//45
//求几次方的值
System.out.println(Math.pow(3,2));//9.0
//double [0.0,1.0)
double n = Math.random();
System.out.println(n);
//1‐10
//[最小值,最大值]
//(int)(Math.random()*(最大值‐最小值+1)+最小值)
int num = (int)(Math.random()*(10‐1+1)+1);
System.out.println(num);
}
}
Random类
Random rand1 = new Random(11);//11为随机种子
System.out.println(rand1.nextDouble());
Random rand2 = new Random(11);//
System.out.println(rand2.nextDouble());
随机种子相同时,相同随机次数输出结果相同。
Random rand3 = new Random(11);
//int范围内的整数
System.out.println(rand3.nextInt());
//[0,5)
System.out.println(rand3.nextInt(5));
Day7 访问权限的更多相关文章
- Java类访问权限修饰符
一.概要 通过了解Java4种修饰符访问权限,能够进一步完善程序类,合理规划权限的范围,这样才能减少漏洞.提高安全性.具备表达力便于使用. 二.权限表 修饰符 同一个类 同一个包 不同包的子类 不同包 ...
- MongoDB 安全和访问权限控制
MongoDB的访问控制能够有效保证数据库的安全,访问控制是指绑定Application监听的IP地址,设置监听端口,使用账户和密码登录 一,访问控制的参数 1,绑定IP地址 mongod 参数:-- ...
- 窥探Swift之类的继承与类的访问权限
上一篇博客<窥探Swift之别具一格的Struct和Class>的博客可谓是给Swift中的类开了个头.关于类的内容还有很多,今天就来搞一下类中的继承以及类的访问权限.说到类的继承,接触过 ...
- Android Permission 访问权限大全(转)
程序执行需要读取到安全敏感项必需在androidmanifest.xml中声明相关权限请求, 完整列表如下: android.permission.ACCESS_CHECKIN_PROPERTIES允 ...
- SQL SERVER 属性OWNER不可用于数据库xxx。该对象可能没有此属性,也可能是访问权限不足而无法检索。
今天遇到一个案例:右键单击数据库的属性时出现下面错误提示: 属性Owner不可用于数据库xxx,该对象可能没有此属性,也可能是访问权限不足而无法检索. 使用脚本查看该数据库的Owner时发现Owner ...
- (转)浅析Java中的访问权限控制
原文地址: http://www.cnblogs.com/dolphin0520/p/3734915.html 今天我们来一起了解一下Java语言中的访问权限控制.在讨论访问权限控制之前,先来讨论一下 ...
- SVN版本库(访问权限)配置实例笔记
http://blog.csdn.net/zjianbo/article/details/8578297 SVN版本库(访问权限)配置实例笔记 本系列文章由ex_net(张建波)编写,转载请注明出处. ...
- service 03 iis之服务器无访问权限
这两天在Service 03 的iis 6.0 里面配置一个aspx 的网站 ,总是遇到一个问题 401.2 无权限访问,于是去百度了一下好多的方法,基本上是关于设置匿名用户,打开IUSER用户 ...
- 使用nginx和iptables做访问权限控制(IP和MAC)
之前配置的服务器,相当于对整个内网都是公开的 而且,除了可以通过80端口的nginx来间接访问各项服务,也可以绕过nginx,直接ip地址加端口访问对应服务 这是不对的啊,所以我们要做一些限制 因为只 ...
随机推荐
- 写一个有字符界面的ssh链接工具
大概的样子 这是大致的样子- 写之前想说的 因为个人工作的的电脑是deepin系统的,系统本身的命令行非常好用,用第三方的ssh工具用不习惯,就想自己写一个. shell脚本是第一次写,写的不是很好, ...
- 撰写html标签的快捷方式1
一: <ul> <li><a href=""></a></li></ul> 如果要写上面的标签,直接写 ul ...
- mybatis循环生成前后缀:mapper.xml的<trim></trim>
*在mapper.xml中<trim prefix="(" suffix=")" suffixOverrides="," prefix ...
- Unity之使用技巧记录
A:写了个死循环Unity无响应崩溃了怎么办? Q::到文件夹里找到刚刚写的脚本,把错误的代码屏蔽掉,再回到Unity
- html--对URL传参数进行解析
跳转页面需要传参数到另外一个html页面,跳转链接可写一个js的function function doView(articleId) { window.location.href ="co ...
- Android分享---调用系统自带的分享功能
以前我们总想到友盟等平台分享功能的集成,集成这玩意还得下载对应的jar包.当然,用这些平台的分享并不是说什么好处都没有,至少人家的统计功能还是很实用的.不过有的时候我们是不需要多余功能的,只需要能分享 ...
- 重装系统,打开VS进行程序调试运行的时候 Unable to find manifest signing certificate in the certificate store
重装系统,打开VS进行程序调试运行的时候 Unable to find manifest signing certificate in the certificate store. 项目的属性-> ...
- 润乾报表如何使用Echarts
1. 润乾报表中使用Echarts统计图的步骤 2. 报表中添加echarts2统计图 选中需要设为统计图的单元格,点击 报表-第三方图形 菜单项,或者右键菜单-第三方图形,在图形编 ...
- android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配
1 Android手机目前常见的分辨率 1.1 手机常见分辨率: 4:3VGA 640*480 (Video Graphics Array)QVGA 320*240 (Quarter VGA ...
- c# 将秒数转换成时,分,秒的方法
TimeSpan ts = , ,Convert.ToInt32( duration)); string str = ""; ) { str = ts.Hours.ToString ...