面向对象

1.     类和对象

1)       类就是对现实生活中某一类事物的概括性描述,这种描述方法是借助于程序语言来描述的。描述时重点描述这类事务的特征(用成员变量表示)和行为(用方法来表示)。在使用编程语言来描述这些特征时,使用变量来表示这些特征的状态;使用方法来描述事物的行为。

2)       何谓对象:对象是一个类的具体实例,它通过new运算符实现实例化。对象与类是一种个体和群体的关系。对象实例化后要在内存的堆(HEAP)中分配存储空间。

3)       类是抽象的,而对象是具体的。对象在内存堆中占用资源的

类就是从某一事物的属性和行为两方面去描述该事物。

4)       定义类

[修饰符]class 类名 [extends 父类名 implements接口1,接口2…]{

声明属性;

声明方法;

声明构造方法;

……

}

class Student

//每个类都有主体部分,使用{}代表类的主体

{

      //在类的主体中可以定义以下信息

      //1.定义类的属性(用变量来实现)

      String sid; //学号

      //2.定义类的行为

      void study()

      {

             System.out.println("Study");

      }

      //3.定义构造方法   //4.程序段

      //5.定义内部类

}

注:一旦定义了一个类,相对于定义一种数据类型。以后我们就可以使用该数据类型去声明变量。对象=变量(但对象比较复杂)

2.     构造方法

构造方法:创建对象的同时初始化对象,系统会为每一个类提供一个无参的构造方法

                     构造方法特点:

1)       构造方法名与类名必须相同,没有返回值,也不能写void

2)       构造方法不能被继承,但可以有子类中使用super()调用

3)       构造方法不能被对象调用,只能被new关键词调用

4)       构造方法可以被重载

5)       如果没有添加任何构造方法,系统会默认提供一个无参的构造方法,如果添加了任意一种构造方法,系统将取消默认提供

6)       构造方法是在创建对象的同时初始化对象

7)       可以使用this()来调用构造方法,但他必须是构造方法的第一条语句

8)       构造方法不可被重写

9)       不能被static、final、synchronized、abstract和native修饰。

3.     方法重载(overloading)

在同一个类中,名字相同,参数列表(参数个数,类型,顺序)不同构成方法的重载,是多态的一种表现。只有返回值不同不是重载

4.     this关键字

this像一个代词,代表本实例

1)       this调用本对象的成员变量

this.实例变量,代表本实例的一个成员变量。

 

double r;

      //构造方法

      publicCircle2(double r)

      {

             this.r =r;  //两个r指的都是形参r,而不是成员变量r

      }

2)       this调用本对象的实例方法

this.方法(参数列表)

可以调用本实例的其他方法。

3)       this调用构造方法

this(参数列表)

 static double r;

      //第一个构造方法

      public Circle2()

      {

             System.out.println("执行了无参的构造方法");

      }

      //第二个构造方法

      publicCircle2(double r)

      {

             //在构造方法体中,调用其他的构造方法

             this();//通过this(参数列表)调用构造方法。注意本行代码必须放在其他构造方法体的第一行。

             this.r =r;  //两个r指的都是形参r,而不是成员变量r

}

5.     成员变量和方法访问

定义在方法中的变量为局部变量,定义在类中的变量为成员变量

1)       成员变量声明

[访问控制修饰符] [static] [final] 数据类型变量名 [=初始值];

public static final double PI = 3.14 //定义一个常量。

访问控制修饰符:public, protected, default, private

成员变量如有static修饰,称为类变量,或没有Static修饰称为实例变量。

注意:成员变量可以显式地赋值,也可以取该成员变量数据类型的默认值,但局部变量必须显式声明,如果声明一个变量未显式赋值,则程序将无法访问该变量。局部变量使用之前必须赋值

2)       方法访问

注:所有语句都必须包含在方法体中

方法分为两类:实例方法(无static修饰)、类方法(static修饰)。

a)       实例变量(实例方法)的访问:

在类的某个实例方法中,可以直接访问该实例变量

在类方法中,访问实例变量时,语法格式如下:

实例名.实例变量名

注:在类方法中不能直接访问实例变量需要使用实例.实例变量名来访问

b)       对于类变量(类方法)来讲

在实例方法中访问:可以直接访问类变量。

在类方法中如何访问类变量:类名.类变量,也可以用实例名.变量。

6.     程序块

1)       程序块也是类体的组成部分,在类体中由” {}”包括的一段程序,称为程序块。

2)       程序块分为两种:由static修饰的程序块,称为静态程序块;没有static的程序块称为普通程序块。

3)       静态程序块最多只能执行一次,在类加载时执行。

4)       普通程序块在对象被实例化(调用构造方法执行),执行晚于静态程序块。只要调用一次构造方法,就会被执行一次。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值