【学习笔记】
1、【构造方法详解】
1、构造方法名与类名一样,与访问控制修饰符一点没关系
2、没有返回值就连返回值类型也么有
特征:如果类中没有任何显示的构造方法,java虚拟机提供一个public无参的构造方法
假如为为这个类提供了一个显示的构造方法,所以默认构造方法就没了
作用:初始化对象时为属性赋初始值
2、【this关键字】
this:代表当前运行的实例,可以使用点运算符来调用该实例的属性和方法
3、【方法的传参方式】【重点】
【遇到return,方法直接结束。】
引用类型:在栈里面声明存储的地址指向堆里面的存储空间
变量:在栈里面存储
------------------------------------【关键在于存储的东西是属于值还是属于存储地址】----------------------------------------
形参(传的值):变量(如int型变量),在方法中会在新开辟一个空间存储,即使输出值变换,在mian 方法中的值也不会改变
实参(传的引用地址):对象(引用类型,传的是地址),字符串String (引用类型,传的是地址),,传参是传的引用地址,所以更改后,在main方法中也会改变
1、如果参数是基本数据类型,传参数的时候使用的是传值方式
2、如果参数是引用数据类型,传参数的时候传的是存储地址(传址)
3、如果参数是不可变的数据类型,实参是不会变化的
4、【可变长度参数】
String...名字 可以传入多个长度不唯一的参数
object...名字
5、【static关键字】推荐使用调用方式:使用类打点直接调用 【类不能静态】
1、可以修饰类成员,所有的实例会共享该属性值
2、可以修饰方法:static方法适合写【工具方法】
3、可以修饰内部类
4、静态方法不允许使用非静态方法或属性(必须实例化),
5、static方法中不允许使用this(都没有创建实例,怎么调用呢?)
----------------------------------------------------【注意事项】-----------------------------------------------------------
Math.sqrt 开方
String 不可变,当使用+号连接两个String字符串的时候,不能在原字符串尾部拼接,会在内存中舍去原有字符串,在新的地方组合两个字符串形成新的字符串,原字符串也就没了引用成了垃圾由虚拟机处理