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();

原创粉丝点击