一.什么是类
1.凡是一个.java后缀修饰的文件都是一个类
2.每个java文件中可以存在多个类。语法如下 class Xxx { }
3.每个Java文件有且只能有一个被public修饰的类,且必须和文件名一致。
一般来说:类的组成:A.属性 B.方法
二.什么是对象
对象就是类的实例化
什么是实例化:将类进行new操作。
例如: 类名 变量名 = new 类名();
Test t = new Test();
称之为:t为Test类的实例化对象。
实例化之后的对象可以:对类的属性或方法进行访问调用。
三.工具类的作用
创建一个工具类,该类的功能如下:
提供方法a1(),该方法只需要完成输出一句话即可。
提供方法a2(), 该方法只需要完成计算方法传递来的2个int值之和并返回。
该工具类写好之后的意义:方便后续去调用它。
*/
public class Test2 {//这个类是工具类
public void a1() {
System.out.println("我是工具类的a1方法");
}
public int a2(int a , int b ) {
return a+b;
}
}
四.实体类
创建一个实体类,该类的功能如下:
提供3个属性,分别是name,age,sex。
提供一个方法,该方法只需要打印这三个属性值即可。
*/
public class Test3 {//假设是一个实体类
String name;
int age ;
char sex;
//该方法的作用:输出这个类的三个属性
public String out() {
return "name=" + name +",age=" + age +",sex=" + sex;
}
}
五.测试类
课堂练习3:
何为测试类:暂时这么理解:有main方法的类
创建一个测试类,创建三个对象分别赋值,并将对象的值打印在控制台上。
*/
public class Test4 {
public static void main(String[] args) {
// 创建一个测试类,调用刚刚创建的工具类的2个方法。
// 如何调用?
// 1.要想调用某个类的方法,需要实例化对象。
// Test2 t2 = new Test2();
// t2.a1();
// int sum = t2.a2(10, 30);
// System.out.println(sum);
//创建实体类的三个对象分别赋值,并将对象的值打印在控制台上。
Test3 t1 = new Test3();
t1.name = "张三";
t1.age = 18;
t1.sex = '男';
Test3 t2 = new Test3();
t2.name = "李四";
t2.age = 20;
t2.sex = '女';
System.out.println(t1.out());
System.out.println(t2.out());
}
}
何为测试类
课堂练习3:
何为测试类:暂时这么理解:有main方法的类
创建一个测试类,创建三个对象分别赋值,并将对象的值打印在控制台上。
*/
public class Test4 {
public static void main(String[] args) {
// 创建一个测试类,调用刚刚创建的工具类的2个方法。
// 如何调用?
// 1.要想调用某个类的方法,需要实例化对象。
// Test2 t2 = new Test2();
// t2.a1();
// int sum = t2.a2(10, 30);
// System.out.println(sum);
//创建实体类的三个对象分别赋值,并将对象的值打印在控制台上。
Test3 t1 = new Test3();
t1.name = "张三";
t1.age = 18;
t1.sex = '男';
Test3 t2 = new Test3();
t2.name = "李四";
t2.age = 20;
t2.sex = '女';
System.out.println(t1.out());
System.out.println(t2.out());
}
}
六.包
为什么要将以上代码分开写?而不写在同一个类里。
1.方便管理阅读,如果代码量一多起来,放在一个类里面更加困难进行阅读。
2.各司其职 每个类都有每个类的作用。
3.例如:我们现在所学的 测试类(有main方法的就叫测试类)
那么测试类的规范:只需要执行代码。不需要过程代码。
例如只需要调用方法,不需要操心方法内部是什么。
一般而言测试类都是放在com.yyzy.test包下
回顾:包package的作用:将代码进行分类。
常见的包:com.yyzy.test包
今日所学:工具包和工具类 简称util
何为工具包:存放工具类的包
何为工具类:可以被复用的方法。
例如将密码进行加密。 将所有的大写字母变成小写字母
计算N个数之和。 将数组进行排序。等等
思考:登录方法是不是工具类?
答:不是,登录是业务类。
今日所学:实体类和实体包 简称entity
何为实体包:存放实体类的包
何为实体类:世间万物抽象的存在,例如一个人,一个猫,一张银行卡
等拥有很多属性的类。例如淘宝上的所有商品,例如微信的所有登录用户。
*/
七.成员变量和局部变量
/*
成员变量和局部变量
成员变量又称为全局变量:声明在方法之外的,在该类中的任何地方都可以访问
特点:如果没有赋予初始值,会自动赋予初始值
boolean类型默认值:false (false其实就是0,true其实就是1)
数字类型: byte short int long double float 默认值都是0或0.0
char : " " 是一个空格
任何引用数据类型的默认值都是null 例如String 数组
局部变量:声明在方法之内的,只能在声明的方法内部访问。
特点:如果没有赋予初始值,不会自动赋予初始值,所以必须要赋值。
*/
//以下五个变量都是成员变量 其中1个有初始值 另外4个没有初始值
byte a = 1;
int b;
boolean c;
String d;
double e;
float aa;
char bb;
public static void main(String[] args) {
long f = 11;//局部变量必须要赋予初始值
//这里要注意:由于没有学习static的甩法,所以暂时不在main方法中演示
//如何证明没有赋值的成员变量的默认值为多少?
//1.调用a方法 2.实例化a方法所在的类即可
Test6 t = new Test6();
t.a();
}
public void a() {
System.out.println(d);//在任何地方都可以访问成员变量。不管有没有赋值
}