最近要开始投简历了,所以我闲着把Java基础复习一遍。
首先说说类和对象。
今天心情不错,来复习复习Java基础:类和对象。
Java是什么?Java是一门面向对象的编程语言(OOP),想要理解Java,首先要理解类(Class)和对象(Object)这两个概念。
Java中的类可以看成C语言的结构体的升级版。结构体是一种构造数据类型,可以包含不同的成员(变量),每个成员的数据类型可以不一样,可以通过结构体来定义结构体变量,每个结构体拥有相同的性质,举个栗子:
#include <stdio.h>
int main(){
// 定义结构体 Student
struct Student{
// 结构体包含的变量
char *name;
int age;
float score;
};
// 通过结构体来定义变量
struct Student stu1;
// 操作结构体的成员
stu1.name = "小明";
stu1.age = 15;
stu1.score = 92.5;
printf("%s的年龄是 %d,成绩是 %f\n", stu1.name, stu1.age, stu1.score);
return 0;
}
运行结果:
小明的年龄是15,成绩是92.500000
Java中的类也是一种构造数据类型,但是对C语言中的结构体有所升级,进行了一些扩展,类的成员不但可以是变量,还可以是函数(方法),通过类定义出来的变量也有特定的称,叫做“对象”,例如:
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
在C语言中,通过结构体名称就可以完成结构体变量的定义,并分配内存空间:C语言Struct Student stu1这样不但定义了结构体变量,并且也分配了内存空间。
但是在Java中,仅仅通过类来定义变量不会分配内存空间的,必须使用new关键字来完成内存空间的分配:Student stu=new Student()。(实际上这条语句相当于Student stu;stu=new Student;这两句代码,第一句代码的意思是创建stu这样一个变量,第二条语句是给stu分配内存空间)。
可以将类比喻成图纸,对象比喻成零件,图纸说明了零件的参数;一张图纸可以生产出具有相同性质的零件,不同图纸可以生产不同类型的零件。
在Java中,使用new关键字就能创建一个对象,即将图纸生产成零,这个过程叫做类的实例化,因此也称为对象是类的一个实例。
注意:类只是一张图纸,起到说明的作用,不占用内存空间;对象才是具体的零件,要有地方来放,才会占用内存空间。
类所包含的变量和函数都有特定的称呼,变量被称为属性,函数被称为方法,属性和方法统称为类的成员。
面向对象编程(Object Oriented Programming, OOP)
类是一个通用的概念,Java,C++,C#,PHP等很多编程语言中都有类,都可以通过类创建对象,可以将类看做结构体的升级版。
因为Java,C++等语言都支持类和对象,所以使用这些语言编写程序被称为面向对象编程(OOP),这些语言也被称为面向对象的编程语言。C语言因为不支持类和对象的概念,被称为面向过程的编程语言。
实际上,面向对象只是面向过程的升级。
面向对象编程在代码执行效率上没有任何优势,相反面向过程编程的代码执行效率要高与面向对象编程。
面向对象编程的主要目的是方便程序组织和管理代码,快速梳理编程思路。
更多推荐
Java中类和对象的概念
发布评论