万事万物皆对象
类的属性默认值和数组元素默认值一样
面向对象思想的体现一:类和对象的创建
1.创建类,即为提供类的内部结构:属性和方法
2.创建类的对象(类的实例化,实例化类)
3.可以通过“对象.属性”或“对象.方法”调用相关功能
特例:Math.sqrt(..) / Math.random()
如果创建了一个类的多个对象,那抹多个对象之间是彼此独立的。即每个对象,都拥有一套自己的属性
当通过其中一个对象修改其属性值时,不会影响其他对象相同属性值
堆:new 出来的结构,数组,对象
栈:局部变量
变量的分类:按照数据类型的分类:基本数据类型(8个) vs 引用数据类型(3个:数组、类、接口)
按照变量在类中声明的位置不同:成员变量(或属性) vs 局部变量
类中属性的使用
成员变量(或属性) vs 局部变量
1.相同点:①声明的格式是相同的:数据类型 变量名 = 初始化值
②先声明后使
③变量都有作用域
2.不同点:①类中声明的位置不同
成员变量:在类的一对{}内直接声明的变量
局部变量:方法内声明的,方法的形参位置声明的,构造器内声明的,代码块内声明的都是局部变量
②成员变量可以在数据类型前声明权限修饰符,而局部变量是不可以声明权限修饰符的
补充:权限修饰符有哪些?public 、private、protected、缺省
③成员变量:声明时,有默认初始化值。也就是说,我们在定义成员变量时,可以不显示的赋值
整形:byte,short,int,long : 0
浮点型:float,double : 0.0
字符型:char :0 (或表示为‘\u0000’)
布尔类型: boolean : flase
引用数据类型:null
局部变量:没有默认初始化值。必须要在调用前,显示的赋值
特别的:方法的形参。此局部变量在方法内调用前,不需要赋值。他的赋值,是在方法调用时。
④二者在内存中存放的位置,是不同的
成员变量:存放在堆空间中
局部变量:存放在栈空间中
属性是依托于对象存在的
类中方法的使用:
方法:类中声明的一个结构,能够实现具体功能。Arrays.sort(int[] arr) / Arrays.binarySearch(int[] arr,int value)
1.public void eat(String food){}
public void show(){}
public int returnAge(){}
public String info(String nation){}
2.方法声明的格式:
权限修饰符 返回值类型 方法名(形参列表){
方法体
}
3.具体说明:
①权限修饰符:可以理解为所被修饰的结构能被调用的范围的大小
有如下的权限修饰:public,protected,缺省,private
②关于返回值类型:没有返回值:void
有返回值:指明具体的返回值类型
如果方法声明时,有返回值,那抹我们就需要在方法执行中,返回具体的满足相应类型的变量或者常量。比如return 1 或者 return index
说明:如果方法有返回值,方法中一定有return !
③方法名:属于标识符。需要命名时,满足标识符的命名规则和规范,“见名知意”
④.形参列表:可以声明0个,1个或者多个变量,如果声明了多个变量,中间用“ ,”分开
⑤.方法体:我们调用方法时,要执行的逻辑。
方法的功能主要体现在方法体上。
①方法中调用当前类的属性或方法。(如果方法A中调用方法A:递归方法)
②在方法体中,可以使用关键字:return ,reutrn的意思:返回,跳出
③ 在方法内,不能再定义方法
同一个包下,不允许定义两个同名的类
在static方法中,调用非static的方法,需要使用对象调用