目录
1、Java中的类
-
类是什么?
类---类型---数据类型---复合数据类型(引用数据类型)---自定义复合数据类型
为什么有复合数据类型?
基本数据类型就8种,在开发中远远不够,所以我们就需要一个可以根据自己的需求随时能制作出一个自己需要的数据类型。
类---具有共同性质的一组事物的群体。如:人类
在java中用来描述具有性质或特征相同的元素抽象出来的自定义复合数据类型。
-
创建java类
通过class关键字创建java类
格式: public class 类名{}
public --- 访问限制修饰符
class --- 创建类的关键字,是类的标志
类名 --- 首字母大写
{} --- 类体,放的内容具有性质或特征相同的元素
例如:
public class Student{ private int id; private String name; private int age; private String address; }
2、Java中类的变量
-
变量的本质就是保存数据
-
变量组成有 1.数据类型 2.变量名称 3.初始值 4.作用域
-
变量用来描述事物的基本属性
-
变量一定定义在类中
-
变量的分类
类中方法外 --- 全局变量
-
可以使用访问限制修饰符 public 缺省
-
可以不用赋予初始值,系统自动赋予默认值,也可以根据需要自己设置一个初始值。
-
可以在本类中的任意一个方法中被使用
类中方法里(方法参数)--- 局部变量
-
不能使用访问限制修饰符
-
必须设置初始值
-
只能在本方法中使用。
6.成员变量的隐藏
在同一个类中成员变量与某一个方法中的局部变量名称相同,这时我们在方法中使用这个成员变量的时候,得到的结果是局部变量的值,此时就是方法中的局部变量将类中的成员变量的值隐藏了,这就是成员变量的隐藏。
问:如果需要在方法中使用被隐藏的成员变量的值怎么办?
答:使用this.成员变量名称 --- 就可以得到被隐藏的成员变量的值。
7.静态成员变量与实例变量
-
静态成员变量与实例变量都是成员变量
-
静态成员变量是使用static关键字修饰的
-
实例变量就是普通的成员变量,没有使用static关键字修饰的
实例变量 --- 成员变量
-
可以使用访问限制修饰符 public 缺省
-
可以不用赋予初始值,系统自动赋予默认值,也可以根据需要自己设置一个初始值。
-
可以在本类中的任意一个方法中被使用
-
只能被对象访问
-
不能在同一个类对象之间共享数据值
静态成员变量(类变量) --- 成员变量
-
可以使用访问限制修饰符 public 确实
-
可以不用赋予初始值,系统自动赋予默认值,也可以根据需要自己设置一个初始值。
-
可以在本类中的任意一个方法中被使用
-
可以被对象访问,也可以用类名访问
-
能在同一个类对象之间共享数据值
总结:静态成员变量与实例变量的区别:
-
3、Java中类的方法
类中的方法描述事物的功能行为
-
实例方法
格式:访问限制修饰符 方法的返回值类型 方法名称(参数列表){方法体}
-
访问限制修饰符 --- public 缺省
-
方法的返回值类型 --- 就是方法的执行结果类型
有返回值时,方法的返回值类型一定是方法执行结果的具体类型
方法的返回值类型可以是基本类型,复合类型
方法体的最后一句话一定是return xxx;
没有返回值时,方法的返回值类型使用void代替。
-
方法名称 --- 用来接收方法之外的数据进入本方法参与计算(找帮手)
参数实际上就是变量,没有初始值,属于局部变量(数据类型 变量名称)
可以没有,也可以有,也可有多个,多个参数之间用 “ ,”。
-
方法体 --- 编写具体实现过程的地方(业务逻辑代码)。
-
-
静态方法(类方法)
使用static关键字修饰的实例方法就是静态方法(类方法)
格式:访问限制修饰符 static 方法的返回值类型 方法名称(参数列表){方法体}
问:实例方法与静态方法的区别?
答: 1. 实例方法没有static,静态方法有static
-
实例方法只能对象.方法,静态方法可以对象.方法,也可以类名.方法访问(建议用类名.方法)
-
实例方法只在方法调用时分配运行空间,静态方法在方法调用前已经 分配好运行空间。
-
-
构造方法
构造方法的作用就是为了创建对象。
我们在创建好一个java类之后,默认类体中就有一个默认的无参构造方法存在,只是没有显示出来
格式:访问限制修饰符 类名(参数列表){方法体}
当类中出现的有参数的构造方法时,默认无参数的构造方法会被覆盖,此时我们如果需要无参数的构造方法时,就需要手动给出无参数构造方法
4、方法重载
在同一个类中,方法的名称相同,参数不同这种现象叫方法重载。
注意:方法重载与方法的返回值类型没有关系,与方法的参数列表有关,方法的名称相同,方法的参数个数、参数类型、参数顺序不同构成方法重载。
5、同一个类中方法与变量的调用关系
类中可以包含两个基本元素 --- 变量和方法
-
方法里面调用变量
构造方法中可以调用实例变量,默认this.实例变量,可以省略this
构造方法中可以调用静态成员变量,默认类名.静态成员变量,也可以this.静态成员变量,可以省略类名或者this
构造方法中可以调用局部变量,局部变量名称访问
实例方法中可以调用实例变量,默认this.实例变量,可以省略this
实例方法中可以调用静态成员变量,默认类名.静态成员变量,也可以this.静态成员变量,可以省略类名或者this
实例方法中可以调用局部变量,局部变量名称方法
静态方法中不可以调用实例变量
静态方法中可以调用静态成员变量,默认类名.静态成员变量,可以省略类名
静态方法中不能出现this
静态方法中可以调用局部变量,局部变量名称访问
-
方法里面调用方法
构造方法中可以访问其他的构造方法
构造方法中可以访问实例方法,默认this.实例方法,可以省略this
构造方法中可以访问静态方法,默认类名.静态方法,也可以this.静态方法,可以省略类名或者this
实例方法中可以访问构造方法,new+构造方法
实例方法中可以访问其他实例方法,默认this.实例方法,可以省略this
实例方法中可以访问静态方法,默认类名.静态方法,可以this.静态方法,可以省略类名或者this
静态方法中可以访问构造方法,new+构造方法
静态方法中不能访问实例方法
静态方法中不能出现this
静态方法中能访问其他的静态方法,默认类名.静态方法,可以省略类名
-
总结:静态方法中不能访问实例元素(实例变量、实例方法)
静态方法中不能出现this
问:为什么静态方法中不能访问实例元素?
答:原因是静态方法的内存分配时机早于实例元素的内存分配时机。
6、Java中的对象
类用来描述一组具有相同性质或者特征的复合数据类型
类中可以包含变量和方法
类中的变量和方法是怎么被使用的?
通过对象来调用类里面的变量和方法来使用
-
对象
对象是有我们自己定义的类来创建出来的。
对象实际上就是类的具体实现
例如:修建大楼是绘制的设计图纸就是类,根据设计图纸修建起来的真实的可以住人的大楼就是对象
类 --- 抽象 --- 模板(设计图)
对象 --- 实现 --- 实例(楼房)
没有类就没有对象
一个类可以创建出多个对象
类是对象的模板,对象是类的具体实现。
-
对象的作用?
调用类中的变量和方法
-
如何创建对象?
-
当前类中---new+构造方法---this
-
其他类中---new+构造方法
-
格式:new 构造方法(参数值);
-
-
对象访问变量
-
局部变量在其他类中不能访问
-
实例变量只能对象访问
-
静态变量类名访问,可以对象访问
-
实例变量在同一个类的多个对象之间不能数据共享
静态变量在同一个类的多个对象之间能数据共享
-
-
对象访问方法
-
构造方法的访问 --- new
-
实例方法只能对象访问
-
静态方法类名访问,可以对象访问
-
有参数方法,需要传递(个数,类型)
-
有返回值,方法体中的最后一句是return,返回的数据值要与方法的返回值类型匹配,调用有返回值的方法需要定义变量来接受方法的返回值
-