类与对象
创建一个类
new 类名();
类名 对象名 = new 类();
对象.变量=
变量相当于对象的属性
Class 类{
成员变量
}
属性如果不赋值,有默认值,规则和数组一致。
栈 堆 对象 方法区 jvm的内存方法的调用机制
理解为成员
成员的好处 提高代码的复用性,可包装给其他用户调用
调用思想
方法定义:(不能嵌套定义)
访问修饰符 返回数据类型 方法名(形参){
语句;
return 返回值;(不是必须的)
}
注意传参 中的 顺序(自动转换) 和类型 要一一对应
返回值 返回多个结果 可以用返回数组
如果类型是void 则方法体中可以没有return语句,或者只写return;
可以嵌套调用
形参的任何改变不影响实参
递归思想 递归调用 递归要回溯
通常调用返回类型为 boolean
方法重载
Java中允许同一个类中,多个同名方法的存在, 但要求 形参列表不一致!
使用注意事项
方法名 必须相同 形参列表 必须不同 返回类型 无要求
可变参数
java允许将同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法。
就可以通过可变参数实现
访问修饰符 返回类型 方法名(数据类型... 形参名)
使用可变参数时,可以当做数组来使用 实质就是数组
可变参数可以和普通类型的参数一起放在形参列表,但必须保证可变形参在最后
一个形参列表只能出现一个可变参数
作用域
局部变量 全局变量
全局变量用默认值 可以不赋值 直接使用
局部变量 没有默认值 必须赋值后才可使用
全局变量 也就是属性 作用域为整个类
局部变量一般是指在成员方法中定义的变量
属性和局部变量可以重名,访问的时候遵顼就近原则
在同一个作用域中,两个局部变量不可以重名
属性的生命周期长 伴随着对象
局部变量的生命周期短 伴随着代码块
全局变量/属性变量 可以被其他类使用(通过对象调用)
局部变量 只能在本类中对应的方法中使用
全局变量/属性变量 可以添加修饰符
局部变量不可以添加修饰符
构造器
[修饰符] 方法名(形参列表){
方法体;
}
修饰符可以默认,也可以是 public protected private
没有返回值
方法名和类名字必须一样
参数列表 和成员方法一样的规则
构造器的调用,由系统完成
一个类 可以定义多个不同的构造器,即为构造器重载
构造器是完成对象的初始化,并不是创建对象
在创建对象时,系统自动的调用该类的构造方法
如果程序员没有定义构造器,系统会自动给类生成一个默认无参构造器,也叫默认构造器
一旦定义了自己的构造器,默认的构造器就覆盖了,就不能使用默认的无参构造器
this 的使用
this的注意事项和细节
this可以直接用来访问本类的属性,方法,构造器
this用于区分当前类的属性和局部变量
访问成员方法的语法 this.方法名(参数列表)
不能在类定义的外部使用,只能在类定义的方法中使用
访问构造器语法:this(参数列表)注意只能在构造器中使用(即只能在构造其中访问一个构造器,必须放在第一条语句)构造器的调用
new 类() 匿名对象
new 类().成员方法 使用后就不能使用了