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

来源:互联网 发布:淘宝怎么搜苍蝇水 编辑:程序博客网 时间:2024/06/05 10:19

封装

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关键字的标准代码写法
[java] view plaincopyprint?
  1. private String name;  
  2.         private int age;  
  3.         public Dog(String name,int age)  
  4.         {  
  5.             this.name = name;  
  6.             this.age = age;  
  7.         }  
  8.         public void setName(String name)  
  9.         {  
  10.             this.name = name;  
  11.         }  
  12.         public String getName()  
  13.         {  
  14.             return name;  
  15.         }  


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