面向对象基础
面向对象是一种思想,是把一个事物看一个整体,从事物的特征(属性)和行为(方法)两个方面进行描述。面向对象的过程就是找对象、建立对象、使用对象、维护对象的关系的过程。
面向对象编程的核心思想是:当需要解决某个问题的时候,只需要思考解决这个问题的工具,找这个工具。如果找不到则自己创建一个工具解决问题。
类
设计类的时候思考:
1,首先从创建类开始(类是程序的基本单元)
2,类里面有方法,变量,类,静态代码块;对象是类的具体
3,定义在方法外,类里面的变量叫做成员变量也叫全局变量(实例变量)
4,变量是特征(属性),方法是行为(动作)
例如:设计一个猫的类,猫的属性有颜色,种类等属性,猫有睡觉,吃饭等行为。
public class Cat {
String color;
String type;
public static void sleep(String color,String type) {
System.out.println(color+"的"+type+"在睡觉");
}
public static void eat(String color,String type) {
System.out.println(color+"的"+type+"在吃小鱼饼干");
}
}
设计类的注意事项:
1,取名见名指意
2,类名的首字母大写
3,思考需要抽象出什么属性和行为
this关键字的作用:
this关键字用于区分全局便变量和局部变量
public class Cat {
String color;
String type;
public void t1(String color) {
this.color = color;
}
}
这里和this关键字连用的代表成员变量,通过等号把局部变量的赋值个成员变量。
构造方法
构造方法的注意事项:
1,如果没有构造方法,系统会给出一个默认的无参构造
2,如果定义了构造方法,系统将不再提供默认的构造方法
3,如果自定义了一个带参的构造方法,还需要使用无参,则需要手动再写一个无参构造
4,无论是否需要,都建议手动书写无参构造和有参构造方法
构造方法的作用:
1,给属性赋值;
2,通过"new"创建对象
例如:创建一个类,分别给上无参和带参构造方法
public class Cat {
String color;
String type;
public Cat(String color, String type) {
this.color = color;
this.type = type;
}
public Cat() {
}
}
在测试类中通过”new“关键字调用无参和带参创建两个对象
public class Test1 {
public static void main(String[] args) {
Cat cat = new Cat();
System.out.println("颜色:"+cat.color+" 种类:"+cat.type);
Cat cat1 = new Cat("红色", "狸花猫");
System.out.println("颜色:"+cat1.color+" 种类:"+cat1.type);
}
}
运行结果:
无参构造和带参构造都能给属性赋值,但如果不在无参构造方法中手动赋默认值,那么系统就会个这两个String类型的参数赋“null”。例如:在无参构造中加上赋值操作,这样就是手动给这两个属性赋默认初始化值了。