Java基础学习(五)- 面向对象

2020-05-16  本文已影响0人  做个合格的大厂程序员

面向对象

概念
把一些特定功能的实现或者属性封装成一个类,这样结构就清晰了很多。在用的时候调用对应的类即可。

特点

定义一个类

代码示例

//定义一个学生类
public class student{
        String name;
        int age;

        public void study(){
            System.out.println("学生学习");
        }

        public void eat(){
            System.out.println("学生吃饭");
        }
    }

使用给一个类

代码示例

Student s = new Student();

s.name = "张三";
s.age = 18;
s.eat();
s.study();

格式

类名 对象名 = new 类名()

成员变量和局部变量的区别

Private关键字

定义

代码示例

public class Student {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void study(){
        System.out.println("学生要学习");
    }

    public void eat(){
        System.out.println("学生要吃饭");
    }
}

我们不推荐外部直接拿到成员变量的值进行修改,因为出于安全性考虑,比如年龄,如果我们在外部直接赋值为-30岁,显然不符合年龄的逻辑,所以我们应该在setAge方法中进行一定的校验,来保证数据的安全。例如:

public void setAge(int age) {
        if (age >100 || age<0){
            System.out.println("输入数据不合法,请重新输入");
        }else{
            this.age = age;
        }
    }

封装

概述

原则

好处

构造方法

构造方法就是在类中重写一个public 类的方法即可

public class Student {
    public Student(){
            System.out.println("这是构造方法");
    }
}

标准类写法

代码示例1

public class Student {
    private String name;
    private int age;


    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if (age >100 || age<0){
            System.out.println("输入数据不合法,请重新输入");
        }else{
            this.age = age;
        }
    }

    public void study(){
        System.out.println("学生要学习");
    }

    public void eat(){
        System.out.println("学生要吃饭");
    }
}

代码示例2

private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if (age >100 || age<0){
            System.out.println("输入数据不合法,请重新输入");
        }else{
            this.age = age;
        }
    }

    public void study(){
        System.out.println("学生要学习");
    }

    public void eat(){
        System.out.println("学生要吃饭");
    }

上述的区别就是一个是使用系统默认的构造方法,一个是使用自定义的构造方法,除了在初始化类的时候不同,其他的使用都是一致的。

上一篇下一篇

猜你喜欢

热点阅读