2021_7_10(第2期)
本周学习面向对象编程。简单地讲下我都学了些啥。
概述
面向对象是相对于面向过程而定义的。它指把相关数据和方法组织为一个整体。从思想上讲,这是程序员从执行者到指挥者的转变。
比喻:
面向过程:把冰箱门打开->把大象装进去->关闭冰箱门
面向对象:招一个会操作冰箱的工人->指挥工人把大象装进去
类与对象
/**
* 一个.java文件中可以有多个类,
* 但只能有一个public(公开)类,
* 且该类类名同文件名;一般建议一
* 个文件一个类
* @author hp
*
*/
public class ClassEX/*类名*/ {
// 成员属性,即变量
// 成员方法,类似于函数
}
public class Test {
public static void main(String[] args) {
// 创建对象,就是类的实例化
ClassEX/*类名*/ class1/*对象名*/ = new ClassEX();
}
}
以上就是对这个“面对对象”的简单介绍。面对对象的内容很多,很多地方也有教程,我只写一下一些我当时搞晕的内容和可能很多人还不知道的java功能。
Extra?
static(静态)
这是个可以修饰方法和变量的修饰符。
首先得知道,“类”是图纸,“对象”是依据“类”这个图纸实例化而来的具体存在。因为每个对象的“成员属性”都不一定相同,如果创建多个对象,正常状况下每个属性都会存多个。但是,如果这些对象的某个属性是相同且一起变化的呢?那就会浪费内存空间,而且也不方便修改。
static修饰的属性是依附于“类”存在,由所有对象共享的属性。同时,因为它在“图纸”上就有,也可以直接用类名调用(非静态的属性和方法要通过已创建的对象名调用)。不过相对地,静态方法不能访问非静态的存在,因为静态方法可调用的时候,对象可能还未创建。
static修饰的方法特性和属性差不多。其最大优势就是可以不创建对象就调用在类里定义的静态方法。
可变参数
当参数列表长度可变…
好吧,java的这个功能还没有那么随意。确实是参数列表长度可变,但每个参数列表只能有一个这样的数据类型。
格式
(修饰符) 返回值类型 方法名(…(各种普通的变量), 数据类型…变量名a){
…
}
没错,是三个英文句号。这样一来,输入参数时数组a会接收任意个该数据类型的变量。注意,可变参数只能放在参数列表最后!