Java基础——面向对象编程(1)

对象、类、属性和方法

过去人们认为程序=算法+数据结构,即认为程序就是先想好操作数据的过程,再决定让数据以什么方式呈现以更方便地实现。随着程序越来越复杂,人们开始引入面向对象编程(object oriented programming)。

面向对象编程就是把多个数据封装到一个对象(object)里,比如网站上的用户信息有很多项,如用户名、密码、年龄、性别、联系方式等等,我们可以分别处理这些数据,也可以把这些信息都封装成一个对象,这个对象有状态,即前面提到的这些数据,还有行为(behavior),即能对这些数据进行什么操作。

对象应该包含哪些数据,应该怎么操作这些数据,这都需要事先写好一个模板,这个模板就是(class)。在类里,我们事先规定好属性(field),即对象应该有哪些状态,用一个变量或常量表示一个属性。我们还要规定好*方法**(method),即对象可以有哪些行为,方法的名称是什么、有什么参数、进行什么操作和返回什么数值都要在类里写好。

我们用类来存储具体的数据时,比如使用User类存储用户Alex的相关信息,就是产生了一个实例(instance),这个实例就是对象。

JDK里已经提供了一些开发用的类,这些类能帮助实现一些基础功能,如String类提供了字符串这种数据结构。如果是使用java.lang包内的类,无需用import引入,其他还是需要。

如果暂时不需要生成对象,可以把类的值设为null值。null是Java的一个保留字,可以看作是一种特殊的基本数据类型,表示的是值为空的对象。但注意如果需要利用对象进行,如果作为参数放入其他参数,程序可能会出现错误,报错NullPointerException

类与类之间的关系

  • 依赖(dependence):一个类在方法里使用另一个类的对象
  • 聚合(aggregation):即一个类的属性为另一个类。
  • 继承(inheritance):一个类在另一个类的属性和方法上,添加属性或方法。

比如我们用Order类来表示订单相关的信息,用Account类表示账户相关信息,用Item类表示货物相关信息。Order类在确定订单的时候,要查看Account类里的信用数据,二者是依赖关系。Order类需要包含货物属性,就需要设置一个类型为Item类的属性,二者就是聚合关系。因为具体商品的订单信息会有差别,因为针对不同类别的商品,我们需要编写不同的类,同时Order类有一些属性和方法体现了所有类别的商品订单的共性,为了提高效率,我们就让这些类继承Order类。

生成对象并使用方法、属性

我们要给生成对象也是需要通过类里的方法来实现的,这个方法就是构造函数(constructor)

构造函数的方法名必须和类名一致,构造函数的返回值默认是当前类的实例。Java中,用保留字“this”来指代当前类的对象。在方法名前面不要添加返回值的类型,也不要使用return语句。

构造函数可以有参数,也可以没有参数。如果没有定义一个构造函数,那么编译器就会自动定义一个无参构造函数。

public class Employee{

	private String name;
	private int age;
	
	public Employee(){}
	public Employee(String name){}
}

使用有参构造函数可以用参数给属性赋值,用this来调用属性。

public class Employee{

	private String name;
	private int age;
	
	public Employee(String name, int age){
		this.name = name;
		this.age = age;
	}
}

通过保留字“new”调用构造函数,我们就可以生成该类的对象了。

Employee e = new Emloyee();

如果调用方法的话,就用在变量名称后面的加“.”,再加相应方法或属性,比如添加名字。

e.setName("alex");
String name = e.name;

能不能调用属性和方法,看权限修饰符是什么。出于安全性的考虑,一般属性用private修饰。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值