1.类和对象的概念
类:是一个具有特殊功能的实体的集合【群体】,【类是Java语言的最基本单位】
对象:在一个类中,一个具有特殊工能的实体,能够帮忙的解决某些特定的问题,对象也被称为实例
两者之间的关系:
类是用于描述某一类事物的共同特征,对象则是类的具体的存在【包含关系】
举例:
类 对象
人 某一个人
快递 邮政,中通
总结:
a.累世对象的抽象,对象是类的具体的实现
b.Java中描述事物通过类的形式体现,类是具体事物的抽象,队象是类的实实在在的存在
因为类是引用数据类型,我们可以把类当作一种自定义的数据类型,可以使用类来定义变量,我们把这种类型的变量统称为引用型的数据类型
2.如何来声明一个类
语法:
访问权限修饰符 class 类名{
//类体;
}
说明:
a.访问权限修饰符:只能使用public【public可以省略,当public省略之后,其实有一个默认的访问修饰符default,但是default不需要写出来】
b.使用class关键字【声明】一个类
c.类名需要是一个合法的标识符,首字母大写一个【大驼峰】
b.尽量使用单个或者多个有意义的英文单词链接起来
注意:
a.在一个Java文件中可以写多个类,如果写了多个类,编译完成之后会生成多个class文件
b.一个Java文件中只能最多有一个被public修饰的类,如果使用了public修饰,Java文件名称必须和这个类名保持完全一致
c.一个Java文件中,所有类都可以不适用public修饰,类名和文件可以不一致,但是,如果这个类中有main函数,一般将文件名和这个类名保持一致
3.类中成员变量和方法的定义
1>成员变量
a.其实就是全局变量
b.成员变量也被称为属性
c.分为静态成员变量和非静态成员变量
d.在静态方法中只能访问静态成员变量,在非静态方法中可以同事访问静态成员变量和非静态成员变量
总结:成员变量【全局变量】和局部变量的区别【面试题】
a.定义的位置不同
成员变量:定义在类中,作用与整个类
局部变量:定义在方法或者语句中,作用与该方法或者该语句
b.内存中出现的时间和位置不同
成员变量:当对象被创建的时候,出现在堆空间中【非静态】
局部变量:当对应所属的区域被执行时,出现在栈空间中
c.生命周期
成员变量:随着队象的创建而出现,随着对象的消失而消失【非静态】
局部变量:所属区域被执行完成之后,会立马消失
d.初始值不同
成员变量:当定义成员变量的时候,可以不赋初始值,系统会自动分配
局部变量:没有默认初始值,如果要在后面代码中使用,必须手动赋初始值
2>成员方法
a.分为静态方法和非静态方法
b.在同一个类中,在静态方法中只能调用静态方法,在非静态方法中可以调用静态方法和非静态方法
成员变量:类具有的特征
成员方法:类具有的行为
4.对象的创建
对象的创建过程也被称为实例化过程
语法:类名 变量名称 = new 类名();
总结:
前提条件:在不同类中
a.静态成员方法和静态成员变量是属于类的,访问的时候采用 类名.方式 或者对象.方式
b。非静态成员方法和非静态成员变量是属于对象的,访问的时候采用 对象.方式
5.方法的重载【Overload】
在同一个类中,如果满足以下的条件时,我们就称为这几个方法之间彼此重载
a.方法名相同
b.参数不同【数量不同,类型不同】
c.与返回值没有关系
静态成员变量和非静态成员变量对比:
1:访问方式
非静态成员变量通过对象调用
静态成员变量可以通过对象调用也可以通过类名调用
2: 存储数据
非静态存储的数据对只能通过对象访问
静态存储的数据对所属类的所有对象共享
3:存储位置
飞静态成员变量是随着对象的创建在堆中开辟内存
静态成员变量是随着所属类的加载同时在方法去中的静态区中开辟内存
4:生命周期
非静态成员变量是当对象调用是被在堆中开辟内存,当对象不在指向它时等待垃圾回收机制回收