面向对象三大特征:
1、封装性:对外部不可见,可以保护程序中的某些内容
2、继承性:扩展功能的
3、多态性:方法的重载、对象的多态性
类图:
类名称 |
属性名称:属性类型 属性名称:属性类型 |
访问权限 方法名称():方法返回值 |
属性名称前加“—”号,则表示被封装
访问权限:"+" 表示public
一、引用数据类型必然存在栈内存和堆内存的引用关系。
|- String:是一个字符串,本身是一个类,就是一个引用数据类型,则默认值是null;
|- int:是一个证书,本身是一个数,是一个基本数据类型,则默认值是0;
开发中,数据最好给一个初值,操作方便
在程序中所有的方法是保存在全局代码区中的,此区中的内容是所有对象共享的。
在引用操作中,如果一个对象没有堆内存引用,而调用了类中的属性和方法,则会出现;NullPointerException 空指向异常
对象间的引用的传递,实质上是传递的堆内存空间的使用权
二、封装性
1、 为属性封装:private 属性类型 属性名称
为方法封装:private 方法返回值 方法名称(参数列表){}
2、 被封装的属性,如果需要被访问,则需要编写setter和getter方法完成
setter方法中加入验证功能
getter方法中只是简单的取回内容
3、构造方法
对象在实例化是必须调用构造方法
访问权限 类名称 (类型1 参数1, 类型2参数2…){
构造方法没有返回值!
}
4、匿名对象
匿名:没有名字,在Java中如果一个对象只使用一次,则这个对象可以定义为匿名对象
所谓的匿名对象就是比之前的对象少了一个栈内存的引用关系。只开辟了堆内存。
三、程序分析思路
1、根据要求写出类所包含的属性;
2、所有的属性都必须进行封装 ;
3、封装之后的属性通过setter 和getter设置和取得 ;
4、如果需要可以加入若干构造方法 ;
5、再根据其他要求添加相应的方法 ;
6、类中的所有方法都不要直接输出,而是交给所调用处输出