初识面向对象

目录

1.万物皆对象,属性即特征,方法即行为

2.类和对象的关系

3. 编写类和创建对象

4.实例变量

5.构造方法(构造器)

6. this关键字


1.万物皆对象,属性即特征,方法即行为

自然界中任何事物,都可以理解为一个对象,每个对象都有其特征和行为。在Java程序中使用属性和方法将其具体描述。

一类事物共同拥有的特征称之为属性,在Java中用属性来描述 f  field : 字段 属性  成员变量  实例变量(实例:真实存在的个例)

一类事物共同拥有的行为,称之为方法,在Java类中使用方法描述 m  method 方法

2.类和对象的关系

类是对象的抽象    比如 人类、动物、电子产品类    只通过这些信息无法确定具体的对象是谁

对象是类的具体    例如  张三、李四、隔壁老王、楼下的狗、路边的梧桐树,这些属于具体存

在的个例、实例

3. 编写类和创建对象

编写类:通过分析此类事物共有的特征和行为  通过属性和方法来描述,编写在类中

创建对象:通过 new 关键字创建对象 , 访问属性和方法通过对象加点

创建对象的过程也称作实例化

public class Student {
    String name;
    int age;
    double weight;
    double height;
    String studentNo;
    String address;
    char sex;

    public void study(){
        System.out.println("学生学习");
    }
    public void eat(){
        System.out.println("学生吃饭");
    }
    public void sport(){
        System.out.println("学生健身锻炼身体");
    }
    public static void main(String[] args) {
        // 创建对象 通过new关键字创建对象  格式 类名 对象名 = new 类名();
        Student stu1 = new Student();

        // 访问(取值和赋值)属性 通过  赋值:对象名.属性名 = 值  取值 :对象名.属性名

        stu1.name = "赵四";
        stu1.age = 20;
        stu1.sex = '男';
        stu1.height = 188.5;
        stu1.weight = 85.6;
        stu1.address = "象牙山";
        stu1.studentNo = "sz666";

        // 访问行为 通过 对象名.方法名()    调用方法
        stu1.eat();
        stu1.study();
        stu1.sport();
        System.out.println("-------------------------------------------------------");

        Student stu2 = new Student();
        stu2.name = "广坤";
        stu2.age = 25;
        stu2.sex = '男';
        stu2.address = "象牙山";
        stu2.studentNo = "sz888";
        stu2.height = 175.8;
        stu2.weight = 75.6;

        stu2.study();
        stu2.eat();
        stu2.sport();
    }
}

4.实例变量

public class Teacher {
    String name;//实例变量
    String course;
    int teachYear;
    char sex;
    double weight;
    boolean isHappy;

    public void teach(){
//        String name = "赵四";
        System.out.println(name + "老师上课");
    }
    public void printInfo(){
        System.out.println("我的名字是:" + name);
        System.out.println("我的课程是:" + course);
        System.out.println("我的教龄是:" + teachYear);
        System.out.println("我的性别是:" + sex);
        System.out.println("我的体重是:" + weight);
        System.out.println("我今天是否开心:" + isHappy);
    }
    public static void main(String[] args) {
        Teacher zs  = new Teacher();

        zs.name = "赵四";
        zs.teachYear = 10;
        zs.isHappy = true;
        zs.sex = '男';
        zs.weight = 70;
        zs.course = "形体艺术";
        zs.printInfo();
    }
}

5.构造方法(构造器)

构造方法:用于创建对象的特殊方法

书写格式:访问修饰符 + 类名(){ }

实例方法:访问修饰符 + 返回值类型 + 方法名(){}

构造方法不能手动通过句点调用  创建对象即出发构造方法的调用

无参构造:默认存在  由JVM提供 如果书写了有参构造方法,无参构造方法将被覆盖  如需使用,必须显示书写

有参构造:即有参数的构造方法,用于在创建对象时给此对象的属性赋值

构造方法重载:同一个类中的构造方法,参数列表不同(个数、类型、顺序)称之为构造方法重载

public class Person {
    String name;
    int age;
    char sex;
    String address;
    double height;

    public void printInfo(){
        System.out.println("我的名字是" + name);
        System.out.println("我的年龄是" + age);
        System.out.println("我的性别是" + sex);
        System.out.println("我的地址是" + address);
        System.out.println("我的身高是" + height);
    }

    public Person(){
        System.out.println("Person 类的无参构造方法执行了");
    }

    public Person(String n,int a,char s,double h,String addr){
        name = n;
        age = a;
        sex = s;
        height = h;
        address = addr;
    }

    public Person(String n,int a){
        name = n;
        age = a;
    }

    public Person(int a,String n){
        name = n;
        age = a;
    }



    public static void main(String[] args) {
        Person p1 = new Person();
        p1.name = "赵四";
        p1.age = 20;
        p1.sex = '男';
        p1.height = 185;
        p1.address = "深圳";

        p1.printInfo();

        System.out.println("---------------------------------------");

        Person p2 = new Person("广坤",18,'男', 177, "深圳");

        p2.printInfo();

        System.out.println("---------------------------------------");

        Person p3 = new Person("大拿", 20);
        p3.sex = '男';
        p3.height = 175;
        p3.address = "广州";
        p3.printInfo();

        System.out.println("---------------------------------------");

    }
}

6. this关键字

表示当前对象

用途:

1.属性:通过this . 属性名即可访问

2.方法:访问实例方法,可以使用 this.同级别实例方法 

3.构造方法: this.参数列表 的方式调用本类中其他的构造方法 以提高代码的重用性

    必须在本类构造方法中的第一句位置

关于构造方法:创建对象一定会触发构造方法的调用 调用构造方法不一定是创建对象的*

实际开发中 我们对于一个类 只会书写两个构造方法 :一个无参构造 一个全参构造

public class Person {
    String name;
    int age;
    char sex;
    String address;
    double height;


    public void printName(){
        System.out.println("我的名字是:" + name);
    }
    public void printAge(){
        System.out.println("我的年龄是" + age);
    }

    public void printInfo(){
        this.printName(); // 这里可以使用this加点访问同级别的实例方法 也可以直接调用
        printAge();
        System.out.println("我的性别是" + sex);
        System.out.println("我的地址是" + address);
        System.out.println("我的身高是" + height);
    }
    public Person(){
        System.out.println("Person 类的无参构造方法执行了");
    }
    public Person(int age){
        this.age= age;
    }
    public Person(String name, int age){
        this(age);
        this.name = name;
    }
    public Person(String name,int age,char sex){
        this(name,age);
        this.sex = sex;
    }
    public Person(String name, int age, char sex, double height, String address){
        this(name,age,sex);
        this.height = height;
        this.address = address;
    }
    public static void main(String[] args) {
        Person p2 = new Person("广坤",18,'男', 177, "深圳");
        System.out.println(p2.name);
        p2.printInfo();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值