面向对象
【面向对象】是Java程序设计中的一种思想
万物皆可为对象,有共同属性和行为的归为一类。
我们的世界中每个独立个体都是一个对象(不是女朋友哦~),现实中会发现身边有很多对象,
车,手机,人等等。
Java中的对象就是现实对象的一种映射,把现实中的事物映射到程序中去,从而开发出
符合我们生活逻辑的程序。
对象:是类的一个实例,唯一的,独立的,特殊的【个体】。
类:类就是一类事物的统称例如人类,猴类等。是一个模板,它用来描述一类对象的【属性】
和【状态】。
例如:一条狗是一个对象,它的属性有:颜色、名字、品种等;行为有:摇尾巴、叫、吃等;
【面向对象】:
用合适的对象,处理合适的事,节省大量的时间和效率
【面向过程】:
亲力亲为,亲自参与每一个过程,每个过程都要自己经历一下
人类是【类】而人类中具体某个人如张三就是【对象】
类 | 对象 |
---|---|
人类 | 张三、李四、王五 |
狗类 | 旺财、大黄 |
手机类 | 张三的华为Mate20 |
创建一个类
class 类名 {
// 属性描述
变量
// 行为描述
方法
}
例如:人类
class Person {
/*
属性描述 用变量描述
*/
int age; //年龄
String name; //姓名
char gender; // boolean gender; 性别描述
/*
行为描述 使用方法来完成
*/
// 这是描述吃的方法
public void eat() {
System.out.println("面包");
}
// 睡觉描述
public void sleep(int time) {
System.out.println("张三睡了" + time + "个小时");
}
}
public class Demo1 {
public static void main(String[] args) {
/*
创建一个Person类对象,实例化对象
*/
Person p1 = new Person();
/*
通过类对象,操作当前类对象的成员变量
*/
p1.name = "王二";
p1.age = 16;
p1.gender = '男';
System.out.println("Name : " + p1.name);
System.out.println("Age : " + p1.age);
System.out.println("Gender : " + p1.gender);
/*
通过Person类对象,调用类内的成员方法
*/
p1.eat();
p1.sleep(6);
}
}
【局部变量】:在方法、构造方法或者语句块中定义的变量被称为局部变量。
变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
【成员变量】:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。
成员变量可以被类中方法、构造方法和特定类的语句块访问。
【类变量】:也称【静态变量】,类变量也声明在类中,方法体之外,但必须声明为static类型。
如:static int age;
一个类可以拥有多个方法,在上面的例子中:eat()、sleep()都是Person类的方法。
构造方法
每个类都有【构造方法】。如果没有显式地为类定义【构造方法】,Java编译器将会为该类提供一
个默认【构造方法】。在创建一个对象的时候,至少要调用一个【构造方法】。【构造方法】的名称
必须与类同名,一个类可以有多个【构造方法】。
【构造方法】的作用:
初始化当前类对象空间内的成员变量。
【构造方法】的格式:
public 类名(/* 根据实际情况需要的初始化参数 */) {
初始化语句
}
class Dog {
// 成员变量 Field
String name;
String color;
int age;
char gender;
// 构造方法 Constructor
public Dog() {
System.out.println("无参数构造方法");
}
// 带有一个参数的构造方法,初始化Dog类的name属性
public Dog(String n) {
System.out.println("初始化name属性的构造方法");
name = n;
}
public Dog(String c, String n) {
System.out.println("初始化颜色的方法");
color = c;
name = n;
}
// 带有两个参数的构造方法
public Dog(String n, int a) {
System.out.println("初始化name属性和age属性的构造方法");
name = n;
age = a;
}
// 成员方法 Method
public void eat() {
System.out.println("狗狗最好吃狗粮");
}
public void sleep() {
System.out.println("狗狗到10点就睡觉");
}
}
public class Demo2 {
public static void main(String[] args) {
Dog dog1 = new Dog();
System.out.println("Dog1.name : " + dog1.name);
Dog dog2 = new Dog("旺财");
System.out.println("Dog2.name : " + dog2.name);
}
}
【构造方法】的注意事项:
1. 构造方法必须是【类名】,其他方法绝对不允许使用【类名】
2. 构造方法没有返回值类型
3. 构造方法可以根据自己的实际需求来选择初始化的成员变量,传入不同的参数,但是在定义
类时,建议一定要定义一个无参构造方法留着备用类时,建议一定要定义一个无参构造方法留
着备用
4. 构造方法中不允许出现参数类型,个数,顺序一模一样的方法。编译报错
【注意】在Java中方法的执行,数据类型是一个非常重要的参考条件,而参数的名字无所谓