黑马程序员--封装--java

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

封装

01、封装之Private


一 封装的定义:
隐藏对象的属性及实现细节仅对外提供公共的访问方式(private 仅仅是封装的一种体现形式)

二 private 是什么,以及被他修饰的成员有什么变化

是一个关键字,表示私有的意思,它是一个访问权限修饰符,
它可以修饰成员变量以及成员方法,被他修饰的成员在其他类中不能直接访问.


02、封装的代码体现

一 如果在其他类中想访问用 private 修饰的成员变量怎么做?
在类中提供一个public 修饰的成员方法(一般如果是获取用get,如果是设置用set),返回的是 private 修饰成员变量
接下来调用这个公共的方法就可以得到私有的变量了

二 以后开发中标准代码写法
类中所有的成员变量都用 private 修饰.(上课为了讲课方便有时候是没有加私有的)

get和set不一定要成对儿出现.

get方法写法(需要有返回值类型,不需要传递参数)
set方法写法(不需要返回值类型 void ,要考虑形式参数位置需要传递什么类型的值)


*** 写一个方法的时候一定要明确写这个方法是要做什么操作(从而可以确定返回值类型,和参数列表)

03、构造方法概述和使用

一 构造方法格式及特点:
A:方法名要与类名一致
B:没有返回值类型
C:没有具体的返回值

二 构造方法的作用:
给对象进行初始化

三 给成员变量赋值
A:通过set方法给成员变量赋值(推荐使用set)
B:通过构造方法也可以对成员变量赋值
set方法它的存在就是为了给成员变量赋值
构造方法的存在主要目的是初始化对象(它可以捎带脚给成员变量赋值)


注意事项
A:如果你没有给出构造方法的话,系统会默认给出一个无参构造
B:假如你给出了构造方法,那么系统将不再提供默认构造方法(推荐永远手动给出构造方法)
C:构造方法也可以重载(其实就是参数列表不同)


04、this关键字的概述和应用


一 this 关键字代表谁?
哪个对象调用该方法, this 就代表调用这个方法的对象.


二 this的应用场景:
可以解决 成员变量和局部变量重名时,无法给成员变量赋值 的问题。


05、this关键字的标准代码写法
private String name;
		private int age;
		public Dog(String name,int age)
		{
			this.name = name;
			this.age = age;
		}
		public void setName(String name)
		{
			this.name = name;
		}
		public String getName()
		{
			return name;
		}


06、代码块儿的概述


A: 局部代码块
概念:把它定义在方法中
作用:可以让局部代码块中的数据尽可能早的消失,提高内存利用率.


B:构造代码块
概念:定义在类中方法外
作用:可以把构造方法中共性内容定义在构造代码块中.

07、对象的初始化过程
A:把Person.class文件加载到内存。(类加载器)
B:在栈内开辟一个变量空间。给P使用。
C:new Person()就会在堆内存开辟空间。
D:方法进方法区,有类名做标记。并且,
同时成员变量进堆内存并给出了默认初始化值。(name:null     age:0 )
E:对成员变量进行显示初始化
F:如果有构造代码块,可以在构造代码块中对成员变量赋值。
G:执行构造方法中对成员变量的赋值。
H:到此为止,对象初始化完毕。
I:把堆内存对象的首地址值赋值给栈内存的p变量。

08、 static 关键字的特点

一 被 static 关键字修饰成员的特点
A:随着类的加载而加载
B:优先于对象而存在
D:可以直接用类名.成员变量名所调用


二 什么情况下使用静态呢?
如果某个内容是被该类下所有对象所共享的,就应该用 static 修饰
如果这个属性是这个类下每个对象特有的描述时 不能使用静态.


09、 static 的注意事项
A:在静态方法中是没有this关键字的(因为this关键字是创建对象的时候才存在的,而静态的方法是随着类的加载而加载的)
B:静态的方法只能调用静态的成员变量以及成员方法
C:静态修饰的成员变量以及成员方法可以使用类名调用(也可以使用对象调用,推荐使用类名调用)


10、不同java文件中类的方法的调用

A:类 ArraysDemo 工具类  B:类  ArrayTest 测试类
第一种:先编译A类然后在编译B类在使用
第二种:直接编译B类它自动编译A类 直接使用即可

11、Math类功能的使用

A:Math.abs(参数类型 形式参数)
绝对值
B:Math.ceil(-18.8); //18.0
向上取整
C:Math.floor(12.3);//12.0
向下取整
D:Math.round(12.6);//13.00
四舍五入
E:Math.random();
获取随机数
F:Math.max(12,53);
获取两个数中的最大值
G:Math.min(11,66);
获取两个数中的最小值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值