2022-07-19 第六组 程梓杭 Java(5)

今日学习内容

image

1、类?对象?

在编程思路是有两种常见的方法分别是面向过程的编程方法和面向对象的编程方法。面向过程是思考整个程序运行的过程并逐步实现这个过程,此方法在程序越来越庞大与复杂的今天早已难以满足开发需求,于是面向对象的开发方法应运而生。
“世间万物皆为对象”是面向对象的基本思想。
人是一个类,手机是一个类,商店是一个类等等一些事物都是类,当在这些类中单独列出个体时,赋予这些个体具体属性时,它们也就成了对象,例如19岁男学生名叫张三(暂不考虑重名,不列出更多属性),一个崭新的苹果13手机,一家坐落于长春市中心的名字叫“随便取的”的服装店。
类可以互为属性,例如人配备手机,手机成了人的属性。同理,实例化类为对象时,如张三有一个崭新的苹果13手机,对象互为属性了。
image

2、访问权限

image
所谓访问权限是指能调用设置该访问权限目标(类,对象,方法,变量)的范围。
例如,设置访问权限为public(全局)的目标,调用起来就是百无禁忌,几乎任何位置都能调用这个目标。
例如,设置访问权限为private(局部)的目标,调用起来就得小心翼翼,只能在当前类下,在private作用域里调用。

3、方法调用与方法重载与递归

方法调用,与前面的访问权限相关,访问目标为方法。
格式: 方法名(传递参数1,传递参数2,···)
具体格式取决于方法的参数类型,参数数量,参数顺序和返回值类型。
例如:

public void sum(double a, double b){
	System.out.println("两数之和为"+(a+b));
}
public int sum(int a, int b){
	return a+b;
}
public void sum(){
	System.out.println("我是无参无返回值的类型")
}

可以看出,void或者其他数据类型修饰方法名时,返回值不同,传递参数不同时,形式参数要与实际参数类型,数量,顺序一致。
方法重载是在同一类下,多个同名但传入参数不全相同的方法,具体调用哪个方法取决于实际调用方法时传入的参数类型数量与顺序。
例如,上方多个方法名相同,依据传入数据不同而改变调用方法。

4、构造方法(构造器)

构造方法是类中的一种特殊方法,主要用于实例化类为对象。
编写构造方法的一般格式:

public class person{

 public person(){
 }
}

上面的构造方法没有也不用声明返回值,访问权限可以设置其他类型,可以有传递参数,也可以是无参构造。构造方法必须与类同名!
调用构造方法的一般格式:

person p = new person();

构造方法名 对象名 = 实例化 调用构造方法(传递参数);

一些思考:

类,对象在c语言中存在极其相似的结构-结构体。结构体在声明后,可以构造结构体实例作为特殊的数据类型,这一点上可以说是几乎一致。但是类和对象相比于结构体更加贴近现实生活,也的确更便于理解。
访问权限归根结底是作用域的问题,不同的声明有着不同的作用域。
方法的调用与方法重载与递归没有太多值得说的内容,重载是方便调用的特殊手段。递归有一个十分便于理解的运用——树(tree)。tree基础结构是一个root和多个child,对child再进行tree的构造,于是就出现了一颗无穷无尽的大树。如果设置了停止child的tree构造则大树不再无穷无尽。
关于构造器,我有一个小问题,构造器是否能当成(结构特殊外)一般的方法看待?就目前而言,似乎构造器的确就是一个固定宫内为构造类实例化的对象的方法。那么为什么不用定义返回值类型呢?甚至不需要void?

posted @ 2022-07-19 19:54  不觉已入梦  阅读(21)  评论(1编辑  收藏  举报