J-7 面向对象
2015-08-25 17:14
218 查看
形式参数
匿名对象
封装
构造方法
成员方法
成员变量
基本类的标准代码写法
五、形式参数
基本类型:形式参数的改变不影响实际参数引用类型:形式参数的改变直接影响实际参数
方法的形式参数是类名时:
//形式参数是基本类型 class Demo { public int sum(int a,int b) { return a + b; } } //形式参数是引用类型 class Student { public void show() { System.out.println("引用类型"); } } class StudentDemo { //如果你看到了一个方法的形式参数是一个类(引用类型),这里需要的是该类的对象。 public void method(Student s) { s.show(); } } class ArgsTest { public static void main(String[] args) { //形式参数是基本类型的调用 Demo d = new Demo(); int result = d.sum(10,20); System.out.println("result:"+result); System.out.println("--------------"); //形式参数是引用类型的调用 //需求:调用StudentDemo类中的method()方法 StudentDemo sd = new StudentDemo(); //创建学生对象,对对象进行操作。 Student s = new Student(); sd.method(s); //把s的地址给到了这里 } }
六、匿名对象
没有名字的对象应用场景:
①调用方法,仅仅调用一次。优点:匿名对象调用完毕就是垃圾,可以被回收。
②作为实际参数传递。
class Student{ public void show(){ System.out.println("我是student"); } } class StudentDemo{ public void method(Student s){ System.out.println("我是studentDemo"); } } class NoNameDemo{ public static void main(String[] args){ //带名字的调用 Student s = new Student(); s.show(); //匿名对象 new Student().show(); //new Student().show();//这里是新创建的对象。 StudentDemo sd = new StudentDemo(); sd.method(new Student());//作为实际参数传递 //升级版 new StudentDemo().method(new.Student()); } }
七、封装
概述
封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式。优点:①隐藏实现细节;②提高代码的复用性;③提高安全性。
原则:不需要将对外提供的内容都隐藏起来;把属性隐藏。
测试类只创建对象,调用方法。
private关键字
权限修饰符。修饰成员(成员变量,成员方法)。只能在本类中访问。
应用:把成员变量用private修饰,提供对应的set、get方法。
this关键字
当前类的对象名。方法被哪个对象调用,this就代表哪个对象。
使用情况:
①解决局部变量隐藏成员变量;
②其他
八、构造方法
作用:给对象的数据进行初始化。格式:
方法名与类名相同。
没有返回值类型。
没有具体的返回值。
class Student{ public Student(){ System.out.println("这是构造方法"); } }
注意事项:
①如果我们没有给出构造函数,系统将自动提供一个无参构造函数。
②如果我们给出构造函数,系统将不再提供默认的无参构造函数。
如果我们还想使用无参构造方法,就必须自己给出。建议永远自己给出。
九、成员方法
分类:①根据返回值:void类型,非void类型
②根据形式参数:空参方法,非空参方法。
十、成员变量:
如果这个变量是用来描述这个类的信息时,该变量应定义为成员变量。变量的定义:范围越小越好,用完及时回收。
初始化:
默认初始化
显示初始化
构造初始化
十一、基本类的标准代码写法
给成员变量赋值:① setXxx()灵活性高
②构造方法。
输出成员变量值:
①getXxx()灵活性高
②通过调用show()方法。
相关文章推荐
- 排序算法之归并排序
- 谷歌可以访问了
- YII 1.0 上传文件
- struts2设置<s:select>默认选中项的方法
- 韦东山视频
- 改变tableview的分割线长、颜色问题 以及自定义分割线
- YII 1.0 扩展第三方类
- 锦隆驾校考试场---小路
- 如何解决paramiko执行与否的问题
- Unity之弹床(蹦床效果)
- Android自定义圆形加载进度条
- 每天进步一点点————事务控制(1)
- 黑马程序员——C语言中的标识符
- The influence of depreciation on plywood export
- Android 权限(Permission )列表
- jquery的validate最基础使用总结
- html 单选框及多选框控制显示及追加元素
- java常见数据库连接池参数
- java环境中基于jvm的两大语言:scala,groovy
- 修改linux最大文件句柄数