2011年1月20日,学习日记,面向对象(上)
来源:互联网 发布:vscode debug npm 编辑:程序博客网 时间:2024/06/06 01:36
一.面向对象(上)
主要内容:类与对象,类的封装,构造方法,this关键字,参数传递,static关键字,静态代码块,单态设计模式,内部类,文档注释。(上)
总结:
类既是对象的模板,类定义对象的一般属性,并提供创建对象的构造方法,以及处理对象的一般方法。对象是类的实例,可以使用new操作符创建对象,例如:People a = new People("name",age);。其中a为引用变量,a中只包含该对象的引用地址。严格来说a不是一个People的对象,但一般情况下可以忽略它们的区别。
在一个对象的类的声明中,需要有3个大方面,1是构造方法,2是数据域,3是一般方法。通过调用构造方法可以创建对象。构造方法与一般方法区别在于:
A.构造方法必须与所在的类具有相同的名字
B.构造方法没有返回类型,也没有void
C.构造方法的调用是在创建一个对象时使用new操作符进行。构造方法可以重载。如果类中没有声明构造方法,jvm会提供一个不带参的构造方法。
方法的重载:
A.方法名要相同;
B.在一个类中,多个方法具有不同的方法签名(参数类型/参数个数/参数顺序),方法可以重载.
C.返回类型不作要求.
修饰符指定类,方法,数据的访问方式,有默认的(default),public, private, protected。
public 可以被任何包任何类中访问protected可以在类的内部,以及同一个包中,或者子类中访问
默认的(default)可以在类的内部和包内访问private只可以在类的内中访问
private数据可以提供get(),set()方法进行读取和修改。通过private实现类的封装,是其他类需要使用get(),set()方法来访问。
static修饰符是静态修饰符,它修饰的方法和数据又叫静态类。每个类的实例,也就是对象都可以访问static 类型的变量和方法。
最好使用类名.方法,类名.变量访问静态变量和静态方法。实例变量和类变量的作用域是整个类,与何处声明无关。
this关键字指向调用该方法的类的当前实例。例:public void setNumber(int number){this.number = number;}。this指向了调用setNumber()方法的对象。
A.实例变量与局部变量同名,用this。实例变量名来和局部变量加以区分;
B.在构造方法重载的时候,用this来调用其他的构造方法;
C.在实例方法中,用来将当前对象的引用传递给另外的方法。
参数传递:对于基本类型,将实际参数值复制传输。
对于引用类型,将引用类型变量的地址值复制给实参。
静态代码块:静态代码块不属于任何方法,它与构造方法一起用于初始化对象,当类被载入时代码块被执行,且被执行一次。
单态设计模式:通过将构造方法修饰为private,并在类声明中使用static 修饰符创建对象,这样就可以保证类在内存中创建一个实例对象。
内部类又叫嵌套类。
内部类可以引用外部类的数据和方法。
内部类可以声明为static,但静态内部类不能访问外部类的非静态成员,外部类不能访问内部类的成员变量。
若内部类是非静态的,从其他类创建内部类对象,必须先创建外部类,然后在创建内部类.
语法:Outer.Inner inner = outer.new Inner();
若内部类为静态,语法:Outer.Inner inner = new Outer.Inner();
- 2011年1月20日,学习日记,面向对象(上)
- 2011年1月23日,学习笔记,面向对象(下)。
- 《.NET 4.0面向对象编程漫谈》勘误表(2011年1月14日更新)
- 【日记】2008年1月7日
- 2010年3月1日日记
- 12月15日学习笔记—面向对象
- 9月22日培训日记(上)
- 黒马程序员--8月1日学习笔记C#面向对象总结
- php学习日记1 ----面向对象基础
- 6月20日日记
- 7月1日,日记
- 学习日记 2015年4月29日
- DTcms学习日记02(2015年8月7日)
- 学习日记——2015年10月17日
- 【嵌入式学习日记】2016年7月18日
- 【嵌入式学习日记】2016年7月19日
- 【嵌入式学习日记】2016年7月21日
- 【嵌入式学习日记】2016年7月22日
- Discuz修改登录后跳转页面
- 关于Immediate属性的使用(注意)----ADF Faces入门(文档阅读)
- hdu_2276_构造矩阵_快速幂乘
- crux安装后记
- aaaaaaa
- 2011年1月20日,学习日记,面向对象(上)
- IBM HACMP 系列 -- 安装和配置一
- CArray,CMap,CList 速度比较
- 我的C++入门
- 在VC++中如何实现显示桌面的功能即全部最小化显示桌面(整理收集)
- 更改 Visual Assist Cache 存放目录
- linux强制位与冒险位
- 关于vs2008中,往dataset添加用了临时表的存储过程的问题。
- 用Form向服务器提交数据