1.类和对象
类是模型,确定对象将会拥有的特征(属性)和行为(方法)。
对象是类的实例表现
属性:对象具有的静态行为,即对象又什么
方法:对象具有的动态行为,即对象做什么
类:--一个抽象的概念
--模板
对象:--一个具体的实例
例:一个cat类,以及属性和方法
publicclassCat {
//属性
Stringname;
doubleweight;
intmonth;
Stringspecies;
//方法
publicvoid run() {
System.out.println("小猫快跑!");
}
publicvoid eat() {
System.out.println("小猫吃鱼!");
}
}
2.对象的实例化
分为两部分:
(1)声明对象:Cat one
(2)实例化对象:new Cat();
连起来就是Cat one= new Cat();
调用属性及方法:
格式:对象名.属性名(方法名);
例:one.name = “小花”;
One.run();
One.eat();
3.单一职责原则(单一功能原则):
一个类有且只有一个引起功能变化的原因
例:Person类和PersonText类
publicclassPerson {
//成员变量
Stringname;
intage;
Stringgrade;
//成员方法
publicvoid student() {
System.out.println("我是一名学生!");
this.myself();
myself();
this.sex('女');
}
publicvoid sex(charch) {
System.out.println("我是一个"+ch+"孩!");
}
publicvoid myself() {
System.out.println("我叫"+name+",今年"+age+"岁了,读"+grade+"了!");
}
}
publicclassPersonText {
publicstaticvoid main(String[] args) {
//实例化对象
Personp = newPerson();
//调用属性
p.name= "黎明";
p.age= 10;
p.grade= "小学五年级";
//调用方法
p.student();
p.sex('男');
p.myself();
}
}
4.构造方法
格式:访问修饰符 构造方法名(参数:可有可无){
//初始化代码
}
例:PubicCat(){
//初始化代码
}
使用规则:
(1) 与类同名且没有返回值
(2) 只能在对象实例化的时候调用
(3) 没有指定方法时,系统自动添加默认的无参构造方法
(4) 当有指定构造方法,系统将不会调用默认的构造方法
(5) 一个类中可以有多个构造方法
(6) 构造方法只能在构造方法之间被调用,普通方法不能调用构造方法
5.this 关键字
三种使用情况:
(1) 在带参数的构造方法中,表示本类对象(this.变量名)
(2) 在普通方法中,调用方法(this.方法名();)
不过在普通方法中调用本类方法,可使用方法名直接调用(方法名();)
(3) this(); 通过此格式调用构造方法,可带参数
需要注意的是,使用此语句调用构造方法时必须放在方法体内第一句。
通过以下例子具体说明:
publicclassMonkey {
//成员变量
Stringname,feature;
//无参构造方法
public Monkey() {
name = "长尾猴";
feature = "尾巴长";
}
//有参构造方法
public Monkey(String name,String feature) {
this.name = name;//this.name表示Monkey类对象属性
this.feature = feature;
this(); //调用本类无参的构造方法
}
}
publicclassMonkeyText {
publicstaticvoid main(String[] args) {
//实例化对象,并调用构造方法
Monkeym = new Monkey();
Monkeym1 = new Monkey("白头野猴","头上有白毛");
//输出信息
System.out.println("不带参的构造方法");
System.out.println("名称 "+m.name);
System.out.println("特征 "+m.feature);
System.out.println("=====================");
System.out.println("带参的构造方法");
System.out.println("名称 "+m1.name);
System.out.println("特征 "+m1.feature);
}
}