一.类与对象
1.类
概念:生活中一类事物的描述(这些事物具有相同的属性和功能)(群体).
类的组成部分:1.成员变量(类中的变量) 2.成员方法(不带static方法),构造方法(仅有修饰符,通常为public,和方法名,切方法名与类名一致的特殊方法)
作用: 1.描述事物 2.类是java中的数据类型,可以通过类来创建对象.
定义格式:public class 类名{ 成员变量 :private 数据类型 变量名 ; 构造方法:public 类名 (形参) {省略}}
对象
生活中看的见的,摸得着的实实在在存在的每一个事物,就是对象
格式:类名 对象名 = new 类名(实参);
关系:1.一个类可以创建很多对象 2.一个对象,必须有自己所属的类 3.对象与对象之间 互相独立
二.成员变量与局部变量的区别:
1.定义位置不同 成员变量: 类中方法外,独立变量:方法中
2.默认值不同: 成员变量有默认值,局部变量没有
三. private关键字(私有的)
特点:被private修饰的内容,智能在本类中使用,在外部无法直接使用. 常修饰成员变量.
四.this关键字
概念:当前对象,谁调用,谁就是这个this的值.
作用:区分成员变量和局部变量重名
五.构造方法
概念:类中特殊的方法1.方法名与类名一致 2. 仅有修饰符和方法名.
作用:1.创建对象. 2.给类中的成员变量初始化.
与setXxx的区别:构造方法是在创建对象的过程中对成员变量赋值,set是在对象建立成功后,对成员变量修改值.
格式:public 类名(形参){方法体;(一般是对成员变量赋值)}
注意事项:1.如果一个类,没有写构造方法,那么java会赠送一个空参构造方法.一旦写了,就不赠送了.2.构造方法每执行一次,就意味着在堆中新创建一个对象.3.构造方法可以重载.
javaBean
特点:1.成员变量私有 2.写成员变量对应的getter.setter方法 3.写空参数的构造方法和全参数的构造方法.
eg.
1.猫类Cat
属性:
毛的颜色color
品种breed
行为:
吃饭eat()
抓老鼠catchMouse()
2.狗类Dog
属性:
毛的颜色color
品种breed
行为:
吃饭()
看家lookHome()
要求:
1.按照以上要求定义Cat类和Dog类,属性要私有,生成空参、有参构造,setter和getter方法
2.定义测试类,在main方法中创建该类的对象并给属性赋值(演示两种方法:setter方法和构造方法)
3.调用成员方法,打印格式如下:
花色的波斯猫正在吃鱼.....
花色的波斯猫正在逮老鼠....
黑色的藏獒正在啃骨头.....
黑色的藏獒正在看家.....
public class Cat(){
private String color;
private String breed;
public Cat (){};
public Cat (String color , String breed){
this.color = color ;
this.breed = breed ;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getBreed() {
return breed;
}
public void setBreed(String breed) {
this.breed = breed;
}
public void eat() {
System.out.println("" + color + "的" + breed + "正在吃鱼.....");
}
public void catchMouse() {
System.out.println(color + "的" + breed + "正在逮老鼠....");
}
}
public class Dog {
private String color;
private String breed;
public Dog() {
}
public Dog(String color, String breed) {
this.color = color;
this.breed = breed;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getBreed() {
return breed;
}
public void setBreed(String breed) {
this.breed = breed;
}
public void eat() {
System.out.println(color + "的" + breed + "正在啃骨头.....");
}
public void lookHome() {
System.out.println(color + "的" + breed + "正在看家.....");
}
}
public class Cat_DogDemo {
public static void main(String[] args) {
Cat c = new Cat ();
c.setColor("黄色");
c.setBreed("加菲猫");
c.eat();
c.catchMouse();
Dog d = new Dog ("黑色","藏獒");
d.eat();
d.lookHome();
}
}