类和对象
类:一个具有所有相同属性的合,试想一下生物物种的概念,类与之类似,比如对于猫来说,所有的猫是一个物种,那么类似的猫可以成为一个类,猫所具备的所有行为(可以做什么)、属性(是什么样的)就是类所包含的特征(对于属性可以称之为成员变量)
对象:对象就是一个具体的实例,按以上的类比来说,一只猫就是一个对象
那么类可以看做一个模板,这个模板上有很多的属性,对象就是这个模板带上了具体的值,变得有了具体意义
在java中用关键字class声明类(一般来说一个文件有一个类,但实际中代码不多的情况下可以就放在一个文件里)
代码体现如下(访问类的第一种方法):
// 创建了一个类,它的名字叫Cat表示猫类
class Cat{
// 属性有 名字 毛色 腿数 猫眼类型
// 这里没有用修饰符默认为public其他类可以访问它
// 如果private String nameCat;这样修饰则这些属性只能在Cat类里使用
String nameCat,coloursCat,feetCat,eyesType;
// 行为有 猫叫
void Cry(){
System.out.println("喵喵喵");
}
}
public class MyMainClass{
public static void main(String[] args) {
Cat cat = new Cat();// 这里Cat没传参数表示新建了一个对象是一只猫,但是它的属性不知
// 赋予猫的名字
cat.nameCat = "布丁";
// 赋予猫的毛色
cat.coloursCat = "狸花";
// 赋予猫的腿数
cat.feetCat = "4条";
// 赋予猫眼的颜色
cat.eyesType = "蓝色";
System.out.println("名字:"+cat.nameCat+" 毛色:"+cat.coloursCat
+" 腿数:"+cat.feetCat+" 猫眼颜色:"+cat.eyesType);
// 赋予猫的行为猫叫
cat.Cry();
}
}
第二种方法 – 构造函数
关于构造函数之后会细说,一般都用这种方法初始化对象
Jdk中工具类的对象初始化几乎都是这种
public class MyMainClass{
public static void main(String[] args) {
// 传递参数给构造函数
Cat cat = new Cat("布丁","狸花","4条","蓝色");
System.out.println("名字:"+cat.nameCat+" 毛色:"+cat.coloursCat
+" 腿数:"+cat.feetCat+" 猫眼颜色:"+cat.eyesType);
// 猫的行为猫叫
cat.Cry();
Dog dog = new Dog("豆丁","白色","4条");
System.out.println("名字:"+cat.nameCat+" 毛色:"+cat.coloursCat +" 腿数:"+cat.feetCat);
// 狗的行为狗叫
dog.Cry();
}
}
//猫类
class Cat{
// 属性有 名字 毛色 腿数 猫眼类型
// 同样如果这里用private修饰则这些属性不能被其他类访问
String nameCat,coloursCat,feetCat,eyesType;
// 构造函数规定与类同名
public Cat(String nameCat,String coloursCat,String feetCat,String eyesType){
this.nameCat = nameCat;
this.coloursCat = coloursCat;
this.feetCat = feetCat;
this.eyesType = eyesType;
}
// 行为有 猫叫
void Cry(){
System.out.println("喵喵喵");
}
}
第三种方法 set/get
所谓set和get方法其实是指给类的每个属性创建赋值(set)方法和访问获取(get)方法,让其他的类通过这些方法来拿值
这种方法更多的拿来传递数据,
public class MyMainClass{
public static void main(String[] args) {
Cat cat = new Cat();
cat.setNameCat("布丁");
cat.setColoursCat("狸花");
cat.setFeetCat("4条");
cat.setEyesType("蓝色");
System.out.println("名字:"+cat.getNameCat()+" 毛色:"+cat.getColoursCat()
+" 腿数:"+cat.getFeetCat()+" 猫眼颜色:"+cat.getEyesType());
// 猫的行为猫叫
}
}
//猫类
class Cat{
// 属性有 名字 毛色 腿数 猫眼类型
String nameCat,coloursCat,feetCat,eyesType;
public String getNameCat() { return nameCat; }
public void setNameCat(String nameCat) { this.nameCat = nameCat; }
public String getColoursCat() { return coloursCat; }
public void setColoursCat(String coloursCat) { this.coloursCat = coloursCat; }
public String getFeetCat() { return feetCat; }
public void setFeetCat(String feetCat) { this.feetCat = feetCat; }
public String getEyesType() { return eyesType;}
public void setEyesType(String eyesType) { this.eyesType = eyesType;}
// 行为有 猫叫
void Cry(){
System.out.println("喵喵喵");
}
}
按Alt + insert然后选Getter and Setter,然后选择定义好的变量可以快速的创建方法
如果是使用的eclipse,右键选source,然后选Generate Getter and Setters,再选择定义好的变量可以快速创建方法