目录
前言:
类与对象:
封装:
总结:
前言:
从本篇开始,我们就要以面向对象编程思想来进行学习了,今天我们学习的内容是类与对象,这是JAVA中的重要知识,让我们一起来进行相关内容的学习吧。
类与对象:
- 类是对象共同特征的描述。
- 对象是真实存在的东西。
Java中的类是一种自定义数据类型,可以用来描述对象的属性和行为。类是由属性和方法组成的,其中属性定义了对象的状态,而方法定义了对象的行为。我们把数据和行为组合在一个包里面,对对象的使用者隐藏具体的实现方式
对象是类的实例,可以使用类的方法和属性以达到预期的功能。每个对象都有自己的状态,由属性的值决定。对象的行为可以通过调用其方法来触发。
Java中类的定义一般包括类名、类的成员变量、类的成员方法。成员变量是类的属性,成员方法是类的行为。
类是构造对象的模板蓝图,我们可以认为类就是饼干模具,它并不能制造饼干,但是可以控制这个饼长什么样子,而对象就是我们创造出来的一个一个小饼干。
在Java中,必须先设计类,才能获得对象 。对于类与对象的关系,我们可以举一个现实生活中的例子:
我们如果想要清洁家里的地板(需求),我们就要想一个方法(寻找类),我们想到了使用扫地机器人(确定类),但想要使用扫地机器人,我们还要去买一个实际存在的扫地机器人(创建对象)
类的定义:
public class 类名{
成员变量(代表属性,一般是名词)
成员方法(代表行为,一般是动词)
构造器
代码块
内部类
}
注意事项:
- 类名的首字母建议大写,需要见名知意
- 一个java文件中可以定义多个class类,且只能一个类是public修饰,而且public修饰的类名必须成为代码的文件名,为了代码结构清晰,我们还是推荐一个文件中只写一个class类。
类与类之间的关系:
-
继承关系:类与类之间的继承关系是指一个类继承了另一个类的属性和方法。被继承的类称为父类或超类,继承父类属性和方法的类称为子类或派生类。子类可以重写父类的方法或添加自己的方法和属性。Java中使用extends关键字表示继承关系。
-
实现关系:类与接口之间的关系是指一个类实现了一个或多个接口中定义的所有方法。实现接口的类必须实现接口中定义的所有方法。Java中使用implements关键字表示实现关系。
-
关联关系:类与类之间的关联关系是指一个类与另一个类有某种操作上的关联或依赖关系。关联关系包括聚合关系和组合关系。聚合关系是指两个类一起工作,但其中一个类可以离开另一个类而单独存在。组合关系是指两个类必须一起工作,其中一个类不能单独存在。Java中使用引用变量表示关联关系。
-
依赖关系:类与类之间的依赖关系是指一个类使用了另一个类的某些方法和属性,但不是必须依赖关系。例如,一个类的方法中调用了另一个类的方法,那么它们之间就有了依赖关系。Java中使用方法参数、局部变量或静态方法调用表示依赖关系。
封装:
Java中的封装(encapsulation)是指将类的实现细节隐藏起来,仅对外暴露必要的接口,从而实现了信息的隐藏和保护。
封装通过访问控制修饰符来实现,Java中有四种访问控制修饰符:public、protected、默认和private。
- public修饰符表示公开,可以被类的内部、外部和子类访问;
- protected修饰符表示保护,可以被类的内部和外部子类访问;默认修饰符表示包访问权限,仅限于同一包内的访问;
- private修饰符表示私有,仅限于本类内部访问。
封装属于面向对象的三大特征,是一个很重要的性质。面向对象的三大特征分别是封装,继承,多态。
封装的基本原则:
对象代表什么,就得封装对应的数据,并提供数据对应的行为。
封装的优点:
1. 信息隐藏:封装可以隐藏类的内部状态和实现细节,只对外提供公共接口。这样可以防止代码被误修改或滥用,提高代码的安全性。
2. 降低耦合度:封装可以将类的内部状态和行为封装起来,使得类的内部改动不会影响到外部。这样可以降低各个模块之间的耦合度,提高代码的灵活性和可维护性。
3. 提高重用性:封装可以使类的内部实现细节被隐藏,抽象出基本的逻辑单元。这样便于将这些逻辑单元重复利用到不同的场合,提高代码的可复用性。
4. 简化调用:封装可以使得外部调用者只关注类对外的公共接口,而不需要了解类的内部实现细节。这样可以简化代码的编写和调用过程,提高代码的可读性和易用性。
综上所述,封装是Java面向对象编程的基本原则之一,合理使用封装可以提高代码的安全性、灵活性、可维护性和可复用性。
JAVA已经为我们封装好了大量的类可以直接调用,在实际项目中大大简化了我们的工作量,让编程更加高效。
实例:封装一个person类
public class Person {
// 成员变量
private int age;
private String name;
// 构造方法
public Person(int age, String name) {
this.age = age;
this.name = name;
}
// 成员方法
public void sayHello() {
System.out.println("Hello, my name is " + name + ". I'm " + age +" years old.");
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
}
延伸来讲,我们实际上可以通过控制接口来实现对于一个变量进行读写控制操作,例如我们在一个类中建立一个私有变量,而接口只提供赋值接口,我们不就实现了对这个遍历进行只写操作。只读只写操作都是这样以此类推。
总结:
类与对象是Java中面向对象的两个重要概念。类是一种抽象数据类型,用于描述具有相同属性和行为的对象集合,它是创建对象的模板。对象则是类的一个实例,具有自己的状态(属性)和行为(方法)。
在Java中,封装是指使用访问控制符限制类内部的数据和方法的访问范围,从而保证程序的安全性和健壮性。封装可以隐藏类的内部细节,只对外暴露必要的接口,增强了对程序的保护性。
今天的内容到这里就结束了,感谢大家的阅读。
如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!