面向对象--类和对象


Java是面向对象的程序设计语言,类是面向对象的重要内容,可以把类当成一种自定义类型,也可以使用类来定义变量,这种类型的变量统称为引用变量。

一定要记住:所有类都是引用变量


定义类

面向对象的程序设计过程中有两个重要概念,类和对象,其中类是某一批对象的抽象,可以把类理解成某种概念,对象才是一个具体存在的实体。

定义一个类是为了重复创建该类的实例,同一个类的多个实例具有共同的特征,而类就是定义了这些实例的共同的特征。

类不是一种具体的存在,实例才是一种真实的存在

你不是人这个类,我也不是人这个类,我们都只是人的实例。

Java语言里定义类的简单语法如下:

[修饰符] class 类名 [extends  Superclassname implements interface {,interface } ] 
{ 
	零到多个初始化块。。。
	零到多个构造器。。。
	零到多个属性。。。
	零到多个方法。。。
} 

对于一个类来讲,主要有4个成员:构造器,属性,方法,初始化块。下面一一来介绍这4个成员:

1),属性:

[修饰符] 属性类型 属性名 [=默认值]
其中的修饰符可以是public,private,protected,final,abstract。

2),方法:

[修饰符] 方法返回值类型 方法名(形参)
{ 
	零到多条可执行性语句。。。
	(本地的native及抽象的方法没有体部分) 
} 
方法如果有返回值,声明返回值类型,且方法的最终的返回类型要和声明的一致,要是没有返回体,声明为void。形参可以为多个,多组参数之间用英语","隔开。

3),构造器:

[修饰符] 构造器名(形参)
{ 
	零到多条可执行性语句。。。
}

构造器是一个特殊的方法,构造器隐身返回该类的实例,无需定义返回值类型。

4),初始化块:

[修饰符]
{ 
	零到多条可执行性语句。。。
}

初始化块的修饰符只能是static,使用static修饰的初始化块被称为静态初始化块。

类中主要包含这4块内容,这也是我们平时在书写的编码。关于这4块东西我后面的博客会一一的详细的整理,这里只是个概述。

以下代码定义了一个比较完整的Linkin类:

public class Linkin
{

	// 定义2个属性:name,age。养成良好的习惯,在写一个类的时候,属性后面加属性备注。
	private String name;// 姓名
	private Integer age;// 年龄

	// 定义一个初始化块
	{
		name = "LinkinPark";
		age = 25;
	}

	// 定义2个构造器
	// 养成良好的习惯,默认的构造器不管使用不使用,都写上。
	public Linkin()
	{

	}

	public Linkin(String name, Integer age)
	{
		super();
		this.name = name;
		this.age = age;
	}

	// 定义一个方法
	public void linkinToString()
	{
		System.out.println("要知足,要平凡,要感恩,结了婚的人,不可再任意强求,");
	}

}


定义类以后,接下来即可使用这个类了,Java中的类大致有如下作用:

1),定义变量

2),创建对象

3),调用类的方法或者访问类的属性


对象的产生和使用

创建对象的根本途径是构造器,通过new关键字来调用某一个类的构造器即可创建这个类的实例。

Person p = new Person();
上行代码实际产生2个东西,一个是p变量,一个是person对象,并将这个Person对象赋给p变量。

上面程序定义的Person类型的变量实际上是一个引用,它被存放在栈内存里,指向实际的Person对象,而真正的Person对象则存放在堆内存中。

和数组一样,当程序访问引用变量的属性和方法时,实际上是访问该引用变量所引用的对象的属性和方法

如果希望垃圾回收机制回收某个对象,只需切断该对象的所有的引用变量和它之间的关系即可,也就是把这些引用变量赋值为null。


面向对象编程的要求

1),对象是客观存在的,万物皆对象。

2),简单性:采用面向对象方法可以使系统各部分各司其职各尽所能。

3),复用性:对象的功能越简单其可重用性越高。

4),弱耦合性:各司其职各尽所能。

5),高内聚性:一个对象独立完成一个功能的能力。

6),类是一类事务的共性,是人类主观认识的一种抽象,是对象的模板。


面向过程与面向对象的对比

面向过程:先有算法,后有数据结构,先考虑怎么去做。

面向对象:先有数据结构,后有算法。先考虑用什么做。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值