在这里首先先进行一个举例
package Text;//包名一般文件被其包裹在一个包里
public class Car {
String color;//实例变量1
String paizi;//实例变量2
static int lunzi=4;//静态变量 储存在指定地方。为一个类的基本信息如:车轮子4个
//构造方法不会产生返回值 如何构造一个车?与类名相同,一般new一个对象,对象成员初始化使用
public Car(){//构造方法1
this.color=“白色”;
this.paizi=“大众”;
}
public Car(String c,String p){//构造方法2
this.color=c;
this.paizi=p;
}
//实例方法是为了定义对象内容,看他的属性如何,可以区分类内的对象,如车一车二区别是啥
public void set(String c,String p){//实例方法
this.color=c;
this.paizi=p;
}
public void set(Car x){//有返回值(可空)的实例方法可以进行设置属性
this.set(“黑”,“奔驰”);
}
public static int putlun(){//静态方法 在此为知晓一个车类的基本特征数据,调用的为本类中的静态变量
return lunzi;
}
}`package Text;
public class Car {
String color;//实例变量1
String paizi;//实例变量2
static int lunzi=4;//静态变量 储存在指定地方。为一个类的基本信息如:车轮子4个
//构造方法不会产生返回值 如何构造一个车?与类名相同,一般new一个对象,对象成员初始化使用
public Car(){//构造方法1
this.color=“白色”;
this.paizi=“大众”;
}
public Car(String c,String p){//构造方法2
this.color=c;
this.paizi=p;
}
//实例方法是为了定义对象内容,看他的属性如何,可以区分类内的对象,如车一车二区别是啥
public void set(String c,String p){//实例方法
this.color=c;
this.paizi=p;
}
public void set(Car x){//有返回值(可空)的实例方法可以进行设置属性
this.set(“黑”,“奔驰”);
}
public static int putlun(){//静态方法 在此为知晓一个车类的基本特征数据,调用的为本类中的静态变量
return lunzi;
}
}
总的来说可以这样区分
//实例变量,对象可进行更改,定义,其属性,特征,标志无static 在实例创建后才会有意义
//静态变量,为一类东西的基本信息,可以由对象引用知晓其内部基本信息,标致,有static
//静态方法,为了利用静态变量,可由一个对象调用,前加static且只能调用静态变量 static定义可返回值
//实例方法,构造一个对象的属性 无static 且返回值(注可以为空几void)在实例创建后才会有用
//构造方法,定义一个类的基本类型。无static不返回值
为了理解这个概念,我们想象有一个student类
{
String name;
public static int count=0;
public student(){
填信息();
count++;
}
public static int getCount(){
return count;
}
public void 上课(){}
}
构造方法就可以想象成学生报道,每来一个学生,创建一个学生实例,调用构造方法就相当于录入新生信息的过程,如果不调用构造方法,那你就相当于没有填写任何信息,这在人现实中是不允许的。在填写了信息后,你就是有学籍的真实存在的(实例)学生了,由于你是基于student构造的类,所以你肯定拥有student类中包含的方法,所有每一个学生都有上课的方法,但对于每一个学生来说(班级),每个人上的课不一定相同,这个方法的实现取决于各个学生(实例)的情况。实例变量也同理,每个学生(实例)的名字不一定相同,每个学生(实例)的名字与其他学生(实例)是相互独立的。
静态变量和静态方法可以放在一起理解一下,student这个类现在把它理解成报名的时候的那张汇总表,对于静态变量count和静态方法getCount(),无论是否有创建实例,它们都存在,count用来计数学生对象数,getCount()用来获取count,将他们设置成静态,
1是无论我是否创建实例,count都存在,就像一个没有一个人的班级,虽然没有人,我也有统计人数的变量(0个)
2是即使班上没有人(实例),我也可以执行getCount()获取学生数,这是对于student这个类来说的,并不需要精确到学生个体(实例也可称为对象)。(static在这只是为了方便理解其与实例变量/方法的不同而这样使用,并不是只能这样使用)