类的一般形式
1.类的概述
类就是事物的集合和抽象。它所代表的是这类事物所共有的一些行为和属性。
2.类的一般形式
类是由属性和方法构成。
中国有13亿人,就有13亿个对象
人类只有一个。
class 类名{
类型 变量名;
类型 变量名;
····
类型 方法名(参数)
{
方法内容
}
修饰符 类型 方法名(参数类型 参数1 参数2 ···)
{
方法内容
}
···
}
一个java文件中可以有很多个类,但是只能有一个public类,且此类的名字和文件名一样。
修饰符:可以修饰类,属性和方法
private:只有在本类中可以看见。
protected : 在本类或同一个包中可见。
public : 对于所有类可见。
默认(无修饰符):系统自己给,在本类或一个包中可见。继承的时候和protected不一样。
方法与主方法
1.方法
如果方法没有返回值,必须写void,不能省略
如果由返回值,则定义的方法的类型必须和方法体内返回值的类型相同
public String returnString(){
return "返回值是字符串类型";
}
2.主方法
程序的入口,从这开始执行。
定义的格式固定:
public static void main(Sring[] args){
}
构造方法
1.构造方法
作用是用于初始化参数,相当于是清零操作,
所有的数字变量全部设置为零
所有的布尔类型全部设置为false
所有的对象变量设置为null
1.1 如果我们没有写构造方法,编译器会自动生成一个
String sex;//性别
int age;//年龄
/*People(){
name = null;
sex = null;
age = 0;
}*/ //不写这段完全可以
public static void main(String[] args){
People p = new People();//这里我们并没有People类,系统自己生成的构造方法,这个必须和我们的类名一样才行,系统给People每个对象赋初值
System.out.println(p.work());
System.out.println(p.eat("西瓜"));
}
}
1.2 设计自己的构造方法
1)方法名称必须与类名字相同,即首字母大写
2)没有返回值,也没有void
this 表示的是当前对象
如果自己写了有参的构造方法,编译器不会提供默认的构造方法,
如果我们还想用无参那段构造方法,那么需手动实现。
方法的重载
在一个类中可以有多个方法共享同一个名称,只要他们的参数不同即可。
根据参数类型和参数数量来决定要调用的方法。
重载:具有相同的方法名称,不同的参数列表,即参数类型不同,参数数量不同,参数次序不同,有以上三个中的一个就是重载。
public static int sum(int a,int b){}
我们在确定是否重载的时候,判定依据是sum(int a,int b),
至于public static int sum这几个东西,我们不理会。
static关键字
1.静态变量
静态变量是属于类的,和对象没关系。
非静态变量是属于某个对象的,每个对象都有该数据的副本,而静态变量只有一个。
访问静态变量是通过(类名.变量名)来访问,通过具体变量访问也行,但是不规范。
2.静态方法
用stati修饰的方法称为静态方法。
访问静态方法是通过(类名.方法名)来访问
一般在工具类中定义静态方法来解决一些问题。
1)静态方法不能访问非静态变量
静态属性或方法是在类加载的时候产生的,非静态的属性或方法是在new的时候产生,也就是构造对象的时候产生,而类加载优先于构造对象。也就是静态方法产生的时候非静态没产生,自然不能访问。
2)非静态方法可以访问静态变量
非静态方法出现的时候说明new出来了,就是有对象了,那说明类早已加载到内存里了。
这是由他们的生命周期决定的。
3.静态常量
public static final int x =123;