【Java基础巩固】Part3 Java中的类和对象

175次浏览

想要了解Java,首先要了解Java的类和对象。


Java中的类也是一种构造数据类型,但是进行了一些扩展,类的成员不但可以是变量,还可以是函数;通过类定义出来的变量也有特定的称呼,叫做“对象”。例如:

public class Demo {
public static void main(String[] args){
// 定义类Student
class Student{  // 通过class关键字类定义类
// 类包含的变量
String name;
int age;
float score;

// 类包含的函数
void say(){
System.out.println( name + "的年龄是 " + age + ",成绩是 " + score );
}
}

// 通过类来定义变量,即创建对象
Student stu1 = new Student();  // 必须使用new关键字
// 操作类的成员
stu1.name = "小明";
stu1.age = 15;
stu1.score = 92.5f;
stu1.say();
}
}

运行结果:
小明的年龄是 15,成绩是 92.5


在Java中,通过使用new关键字来创建对象,这个过程叫做类的实例化,因此也称对象是类的一个实例。


类所包含的变量和函数都有特定的称呼,变量被称为属性(通常也称成员变量),函数被称为方法,属性和方法统称为类的成员。


下面具体介绍

面向对象的概念:

面向对象技术利用对现实世界中对象的抽象和对象之间相互关联及相互作用的描述来对现实世界进行模拟,并且使其映射到目标系统中。其以基本对象模型为单位,将对象内部处理细节封装在模型内部,重视对象模块间的接口联系和对象与外部环境间的联系,能层次清晰地表示对象模型。面向对象的特点主要概括为抽象性、继承性、封装性和多态性。

抽象性——指对现实世界中某一类实体或事件进行抽象,从中提取共同信息,找出共同规律,反过来又把它们集中在一个集合中,定义为所设计目标系统中的对象。

继承性——新的对象类由继承原有对象类的某些特性或全部特性而产生出来,原有对象类称为基类(或超类、父类),新的对象类称为派生类(或子类),派生类可以直接继承基类的共性,又允许派生类发展自己的个性。继承性简化了对新的对象类的设计。

封装性——是指对象的使用者通过预先定义的接口关联到某一对象的服务和数据时,无需知道这些服务是如何实现的。即用户使用对象时无需知道对象内部的运行细节。这样,以前所开发的系统中已使用的对象能够在新系统中重新采用,减少了新系统中分析、设计和编程的工作量。

多态性——是指不同类型的对象可以对相同的激励做出适当的不同相应的能力。多态性丰富了对象的内容,扩大了对象的适应性,改变了对象单一继承的关系。

类:

类是用于描述同一类型的对象的一个抽象的概念。类中定义了这一类对象所应该具有的静态(成员变量)属性和动态(方法)的属性。

类是对大量对象共性的抽象;

类是具有相同属性和方法的一组对象的集合;

类是创建对象的模板。

类由两部分组成:属性和方法。

定义:

类是一种抽象数据类型,在Java中类也被当作一个数据类型来定义。类成员包括数据成员(成员变量)和方法成员(成员方法)

类和对象的关系:

类是抽象的概念,仅仅是模板,对象是在其类模板上建立起来的。类定义了对象是什么,但它本身不是一个对象。

对象是一个能够看得到、摸得着的具体实体。

成员变量的声明:

成员变量又可以叫做属性或字段。它是用来存储数据以记录对象的状态的。

[public | protected | private ]

[static] [final] [transient] [volatile]

 type variableName;

其中,static: 静态变量(类变量)注:相对于实例变量。final: 常量。transient: 暂时性变量。volatile: 共享变量,用于并发线程的共享

成员变量的使用:

实例变量

说明:用来存储实例所需要的属性信息,不同的实例的属性值可能不同。

调用方法:

    实例名.实例变量名;

 

类变量

说明:类的所有实例都具有相同值的,或者说类的所有实例都需要共享的变量。用static关键字标识。

调用方法:

     类名.类变量名;或 对象名.类变量名;

成员变量和局部变量的区别:

作用域不同:

局部变量的作用域仅限于定义它的方法;

成员变量的作用域在整个类内部都是可见的。

初始值不同:

Java会给成员变量一个初始值;

Java不会给局部变量赋予初始值。

在同一个方法中,不允许有同名局部变量;在不同的方法中,可以有同名局部变量。

二者同名时,局部变量具有更高的优先级。


Tags: Java

如果您觉得本文对您的学习或工作有所帮助,您可以打开支付宝,对我的博客进行赞助:
我的支付宝
如果您觉得仍有疑问 OR 发现我的博客中有不正确或侵权的内容,您可以打开手机QQ扫描下面的二维码,联系我本人(备注请注明来自博客):
我的QQ