面向对象简称OO,Java和Python语言一样,一切皆对象。对象是面向对象程序设计的核心,对象是真实世界的实体,一个实体就是一个对象。例如一个班级里,有学生和老师等实体(对象),学生有学号、姓名、年龄、性别、班级等属性,学生还有读书、写字、吃饭、走路等行为(方法)。学生其实是一种抽象的描述,我们可以把学生当成一个学生类,在这个学生类中,有张三同学、李四同学等,这些细化的学生就称为对象,同时也称为实例。
面向过程是分析出实现需求所需要的步骤,然后再通过函数一步步实现其步骤,接着调用这些函数即可,常见的面向过程语言是C语言。
面向对象是把整个需求细分,比如把特点、功能划分,把存在共性的部分封装成一个对象,目的是描述事物在解决问题上的行为。常见的面向对象语言有Java、Python等。
面向对象和面向过程的优缺点如下:
面向对象核心思想之——封装,例如一家超市,顾客只需要选择自己需要的东西购买付钱即可,而超市的运维细节顾客不需要知道也不用知道。因此封装就是把内部的实现隐藏起来,只暴露必要方法让外部调用。
继承主要描述类于类之间的关系,通过继承将原有的类(父类或者超类)的某些特征或全部特征继承到新的类(子类或派生类)中,就无需重写。
多态指父类中的属性和方法被子类继承之后,可以有不同的数据类型和表现行为,是使同一属性和方法在不同类中具有不同的语义。
成员方法即实现类的行为的功能函数,由声明和方法两部分组成,一般格式如下:
修饰符:可选,用于指定方法的被访问权限,可选值有public、protected、private。
方法返回值的类型:必选,用于指定方法的返回值类型,如果没有返回值,那么用void关键字标识,其返回类型可以是Java的任意数据类型。
方法名:必选,用于指定成员方法名称。
参数列表:可选,用于指定方法中所需参数,多个参数值用逗号隔开,参数类型同样是Java的任意数据类型。
想要调用成员方法,必须要在主方法中创建一个对象,再利用对象进行调用,因此再创建一个类
ps:" new "关键字用来在内存中开辟一段内存空间
最后运行结果:
构造方法是一种特殊的方法,不需要用void关键字标识,其方法名和类名必须完全相同,没有返回值
1 package com; 2 3 public class Student { 4 public String name; //公共变量 5 public static int age; //静态变量 6 public final String COUNTRY; //常量 7 8 public Student() { 构造方法 9 name = "张三"; 10 age = 18; 11 COUNTRY = "china"; 12 } 13 public void introduce() { 14 System.out.println("我的名字叫:"+ name +",今年"+ age + "岁了,我来自" + COUNTRY); 15 } 16 17 }
再创建一个类,以完成操作
运行结果:
各种类型变量的初始值,在没有指定数值时,采用初始值:
一个对象没有被任何变量引用,那么就会变成垃圾对象,不能再被使用。null是Java中特殊的变量,当变量值设为null时,那么该变量不会指向任何一个对象