JAVA学习笔记随记1(类与对象初级)

首先说明,这是为了学习java而做的笔记,所以记起来可能杂乱无章,无所谓了,刚开始学习都是这样的。。。
首先小结下String的知识点

String

可以直接声明并赋初值并可以修改,例如:

String abc="a";
abc="b";

其次字符串之间的连接用'+',只要出现字符串和其他数据类型之间用'+'连接,那么该数据类型被转换成字符串类型,并整体返回一个字符串。例如:

String abc=1234+"";

先到这里,以后知道再补充。

类与对象

对于类与对象的大致理解就是,类是将某一类事物的特征抽出来,相当于一个模板一样的东西,而对象则是每一个具体的该类下的一个个体。类相当于一个群体共有的特征,而对象则更像是某一个具体的个体。

对象的内存机制

如下图,首先对象名是在栈中开辟,对象名实际上指向堆中的一个地址,堆中开辟该对象的所有属性的空间,如果有属性是引用属性的话,则堆中存放的仍然是地址,指向其真正的存放位置。
image
补充:java内存分配机制
1.栈:栈主要存放基本数据类型(局部变量)。
2.堆:存放对象(数组等)
3.方法区:常量池(常量,不如字符串),类加载信息

对象属性的默认值

若对对象属性不进行赋值操作,则属性采用默认值,这一点和C有明显的区别,C不赋初值会出现随机的乱值,而java不赋初值则会采用默认0值,引用类型采用空指针null.

创建对象

只有new关键字使用后才会真的在堆区开辟空间存放对象,只声明只会在栈区给变量名分配一个地址,当创建(new)后才会在堆区开辟空间并将地址给变量名。

方法的内存机理

感觉方法和函数差不多,都是在栈中开辟一个空间,执行到调用语句时,跳转到栈中执行函数,之后执行完函数,将栈中的空间释放,之后返回主函数继续执行。
image

方法的注意事项

方法感觉和函数类似,需要注意几点,返回类型可以返回数组,同一类中调用方法直接调用方法名即可,不同类调用方法须实例化对象,通过对象去调用,静态方法可以直接通过类去调用。同时,不同类调用方法还和访问修饰符有关,这个之后再学习。

方法重载

java允许同一类中,多种同名方法的出现,但形参列表必须不同,这种现象叫做重载。

可变参数

java允许将同一类中多个同名同功能但参数个数不同的方法,封装成一个方法。注意这里仅参数个数不同时才方便使用。
实质上就是上传了数组,在函数中采用数组的方式进行处理。
具体语法如下:

访问修饰符 返回类型 方法名(数据类型... 形参名)

需要注意的是:当参数列表不止可变参数一个时,可变参数必须放在参数列表的最后一个。

构造器(构造方法)

首先构造器是一种特殊的方法,当然方法的重载它也可以干。
但构造器总有其特殊的一面,没有返回类型,方法名必须和类名一致。
构造器由于其特殊性,所以由系统进行调用和管理,当没有构造器时,系统会有默认构造器,就是对属性进行默认的赋值,但一旦自己写了自定义的构造器,系统默认的构造器就被覆盖了,也就是不能再无参的new一个对象了,但可以通过构造器的重载,自己再写一个无参数的构造器。构造器中,未提及的属性都会被系统默认赋值为0。这点可以从系统默认的构造器去理解。

this的使用

首先说明this的使用范围,this只能在类中的方法中使用,其余场合不能使用。
其实this的本质就是对象名一样,都是指向对象的地址,所以本质上对象名和this没有什么差别。
其实感觉this的使用本质也不是太多,首先便是属性和局部变量冲突时,由于就近原则,不加任何干预的时候,系统会选择局部变量,如果想使用属性的话就需要使用this去引用当前对象的属性,注意:this的地址和当前实例化出的对象一样,也就是说不同的this时不同的,但都是指向当前的对象(就是谁调用这个方法)。
其次便是构造器中进行使用this,如果构造器有多个参数,为了之后各种各样的参数列表的情况,我们需要写出不同的构造器,可以先写出一个全部参数的构造器,然后其余构造器使用this去引用全部参数的构造器即可。语法为:this(参数列表)
其实,this由于是地址,本类的东西都是能引用和访问的,但对方法而言,我们在同一个类中的一个方法去调用另一个方法,本身就可以直接使用去调用,用不用this都无伤大雅。

posted @ 2023-04-24 13:45  逆天峰  阅读(18)  评论(1编辑  收藏  举报
作者:逆天峰
出处:https://www.cnblogs.com/gcfer//