JAVA-oop面向对象编程-类与对象

类与对象

(1)对象

客观的存在在这个世界上的每一个事物,我们都称之为对象。
万事万物皆为对象!

世界是由什么组成的?

在这里插入图片描述
在这里插入图片描述
对象的特征——属性

属性 ——对象具有的各种特征(名词、形容词)
属性值 ——每个对象的每个属性拥有的特定值
例如:布兰尼和朱丽叶的体重不一样
方法 ——对象所具备的行为/功能

在这里插入图片描述

(2)类

类就是从具备相同属性和方法的多个对象中抽取出来的

类和对象有什么区别呢?

类是一个抽象的概念,比如说:“人类”
对象是一个你能够看得到、摸得着的具体实体

在这里插入图片描述

(3)面向对象的编程

面向对象—针对具体的对象
是把构成问题的事务分解成各个对象
建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为和特性
无序性是关键
面向对象编程
是Java的核心编程思想,其它语言也有,如 C#
面向对象编程的三个重要的原则
封装
继承
多态性

攒机过程类似面向对象编程
配件就是对象,先装哪个配件没有严格固定的顺序
每个配件都封装好了,无需你自己设计

(4)类声明和类体

类是Java程序的核心,它定义了对象的形状和本质,可以用类来创建对象。当使用一个类创建了一个对象时,通常说给出了这个类的一个实例。
类由类声明和类体构成,它的基本格式如下:

	class className
	{
		//body
	}

class是声明类的关键字,每个字母都小写。“class ClassName”是类的声明部分,“ClassName”需符合Java声明类名的标准规范,即每个单词的第一个字母需要大写 {}”以及之间的内容称为类体。

(5)类声明

Java的类声明是创建类时必须对类的一些性质进行描述。包括类名、类的父类、类所实现的接口及类的修饰符。它的一般格式为:
[public][abstract|final] class ClassName [extends superclassName]
[implements interfaceNameList]

关键字class前面是可选修饰符的,其中:
public:访问权修饰词,允许所有的类访问它,如果某个类以public做修饰词,那么这个类的类名必须和Java文件名(*.java)相同。
abstract:对父类的修饰词,当这个类声明为抽象类时,该类就不能被实例化。
final:对子类的修饰词,当这个类被声明为最终类时,它不能再有子类。
如果这个类上面还有父类,那么就需要用到extends修饰词,在之后跟父类名。如果要实现某个接口,就需要用到implements修饰词,后面跟接口名。

(5-1)类的定义示例

定义一个求圆面积的类。

public class Circle {
	private double radius;
	private double area;
	final double PI=3.14;
	public void setRadius(double r) {
		radius=r;
	}
	public double getArea( ) {
		return PI*radius*radius;
	}
}

(6)类体的构成

紧跟在类名后面的大括号以及大括号之间的内容称之为类体。

我们在程序中写类的目的就是为描述一类事物共有的属性和功能。
类体将完成对数据及对数据的操作进行封装。 

类体内容由两种类型构成:
成员变量:

通过变量声明定义的变量,称之为成员变量或域,它用来描述类创建的对象的属性。

方法:

类体主要由方法构成。方法可分为构造方法和普通方法。其中构造方法具有重要地位,它供类创建对象时使用,
用来给出类所创建的对象的初始状态。普通方法可以由类所创建的对象调用,对象调用这些方法操作成员变量形成一定的算法,
体现了对象具有某种功能。
class Car{
		int speed;
		double high;//定义变量
		double width;		    
		public Car(){//构造方法
		}
		int getSpeed(){//定义方法
			return speed;
		}

		double getHigh(){
			return high;
		}
		double getWidth(){
			return width;
		}
} 

(7)对象的定义

类是抽象,而对象是具体。
在Java的编程应用中,其实就是对具体的对象进行操作。也就是说,以类作为一个模板,创建一个对象作为类的一个具体实例。Object类是所有类的父类。
对象的创建
创建对象的过程就是实例化类的过程:充分运用类的模板特性,用类来生产出它的实例。可以将类比作对象的创建工厂。
创建对象时,需要做三件事:对象的声明、对象的实例化及对象的初始化

(7-1)对象的声明

对象声明的一般格式如下:
类的名字 对象名字;
例如:
存在一个类:

	class People{		
		String name;
               int age;
	}
 然后即可声明该类的对象:
	People galen;

这里,People是类的名字,galen是我们声明的对象的名字。需要注意的是,类名必须是Java编译器能找到的,也就是说必须存在该类。用类声明的数据称为类类型变量,即为对象,如People类声明的galen对象。

(7-2)对象的实例化和初始化

使用new运算符可以实例化一个已经声明的对象,并按照对象的类型给它分配内存。

通常用new运算符实例化一个对象时,会同时调用类的构造方法对它进行初始化。

如果该类中没有写构造方法,系统会调用默认的构造方法,默认的构造方法是不带参数的。

例如,实例化上面已经声明的galen对象:
galen=new People();

(8)构造方法

People类中可以同时存在多个构造方法,假如People类中存在这样两个构造方法:

	public People(){
		}
		public People(int i){
			age=i;
		}
那么:
(1)galen=new People();
或
(2)galen=new People(10); 

这些都是合法的。但是如果People中只有一个带int型参数的构造方法,那么实例化和初始化对象时,只有(2)是合法的。

注意事项
在这里需要注意的是,类的构造方法是特殊的类方法,它必须和类同名,并且不能有返回类型,也不能用void来标注。
下面我们来分析代码:

  1. galen=new People(10);
  2. 它会实现两件事。
  3. 为成员变量a分配内存空间,然后执行构造方法中的代码。
  4. 给出一个信息,已确保成员变量age是属于对象galen。

对于People类来说,为变量age分配内存空间后,将返回一个引用赋给对象变量galen,也就是返回一个“地址号”给galen。

(9)对象的使用(调用)

一个对象被创建后,就可以来使用该对象。
使用对象可分为使用对象的变量和调用对象的方法。
使用对象的变量
对象被创建后,就有了自己的变量,即对象的实体。通过使用运算符“.”,对象可以实现对自己的变量的访问。使用的格式如下:
对象名.变量名
例如People类的对象galen,就可以使用:galen.name,来访问变量名name。
调用对象的方法
如果创建对象的类里面存在着方法,那么对象也可以使用运算符“.”来调用类的方法,从而产生一定的行为功能。
当对象调用方法时,方法中出现的成员变量就是指该对象的成员变量。使用的格式如下:

对象名.方法名(参数) 
加入 People 类中有方法函数showAge(),用来输出年龄
例如:galen.showAge();

(10)对象的属性

成员变量

用来刻画类创建的对象的属性,其中一部分成员变量称为实例变量,另一部分称为静态变量或类变量。

成员常量

如果一个成员变量的修饰词为final,这个变量就称为常量。

类变量和实例变量

类变量和实例变量是很容易区分的。类变量就是以关键字static为修饰词的成员变量,而不用static修饰词的成员变量就叫实例变量。例如:
	class Student{
			int num;//学号
			String name;//姓名
			static int c;
		}

final变量的说明

final变量就是我们常说的常量
按照Java的命名规范,常量的名字的所有字母都应该大写
final变量是不占用内存的,所以在声明final变量时,必须初始化
final变量不同于类变量和实例变量,对象虽然可以使用它,但是不能对它进行更改操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值