美文网首页java学习笔记
java学习笔记(六)面对对象

java学习笔记(六)面对对象

作者: Broken故城 | 来源:发表于2020-03-07 13:00 被阅读0次

    个人笔记,仅供参考

    1、面向对象和面向过程

    简单来说,面向过程就是让你自己做一个每一步,面向对象就是使用有相应功能的工具来完成。

    例如:按特定格式打印一个数组

    面向过程:

    int[] array = {10,20,30,40,50};
            //打印格式为:[10,20,30,40,50]
            System.out.print("[");
            for (int i = 0; i < array.length; i++) {
                if(i == array.length - 1){//最后一个数
                    System.out.println(array[i] + "]");
                }
                else
                {//不是最后一个数
                    System.out.print(array[i] + ",");
                }
            }
    

    面向对象:

    System.out.println(Arrays.toString(array));
    

    注:IDEA会自动导入Arrays类

    这两者结果没有区别,主要区别是编程的思想。在这里,帮我们打印数组的Arrays类就被称为对象

    面向对象的三个特征:

    封装性

    继承性

    多态性

    2、类和对象

    什么是类:类是一组相关属性和行为的集合,可以看成是一类事物的模板

    ​ 属性就是该事物的状态信息,行为是该事物能做什么

    什么是对象:对象是类的具体化实例,即类是对象的模板,对象是类的实体

    3、类的定义

    由属性和行为组成,以下为例子:

    学生类示范

    定义一个学生类,有姓名和年龄两个属性,吃法睡觉学习三个行为。

    对应到java类中:

    成员变量(属性):

    ​ String name;

    ​ int age;

    成员方法(行为):成员方法没有static关键字

    public void eat(){}
    public void sleep(){}
    public void study(){}
    

    实际示范:

    public class student {
        //成员变量
        //成员变量直接定义在类中,在方法外
        String name;
        int age;
        //成员方法
        //成员方法没有static关键字
        public void eat(){
            System.out.println("吃饭");
        }
        public void sleep(){
            System.out.println("睡觉");
        }
        public void study(){
            System.out.println("学习");
        }
    }
    
    

    4、对象的创建及其使用

    通常情况,一个类不能直接使用,要创建一个对象才能使用

    创建步骤:

    1. 导包,指出需要使用的类在什么位置,同一个包下可以不写导包
    2. 创建,格式:类名 对象名 = new 类名();
    3. 使用,使用成员变量:对象名.成员变量,使用成员方法:对象名.成员方法名(参数)
    public class Demo4 {
        public static void main(String[] args) {
            //创建对象
            student stu = new student();
            //打印成员变量
            System.out.println(stu.name);
            //使用成员方法
            stu.eat();
            //重新赋值成员变量
            stu.name = "Alan";
            System.out.println(stu.name);
        }
    }
    

    5、对象可以当做参数传递给方法

    public static void method(Phone parse){}
    

    这个方法的参数是一个Phone类的对象

    同样的,对象也可以当返回值

    6、封装性

    在java当中的体现有两点:

    1. 方法就是一种封装
    2. 关键字private也是一种封装

    封装就是将一些细节信息隐藏,对外界不可见

    7、private关键字

    private关键字意为私有化,可以通过该关键字将需要保护的成员变量进行修饰。

    private int age;
    

    使用该关键字后,在本类当中仍然可以随意访问,但超出本类范围之外就不能直接访问了,如果要在类外对该成员变量赋值,需要通过类内的get/set方法。注意:方法名必须叫get xxx或set xxx

    public void setAge(int num){
        age = num;
    }//用来修改age,无返回值,有参数
    public int getAge(){
        return age;
    }//用来调用age,有返回值,无参数
    

    可以在这两个方法内通过代码限制age的值。提高代码安全性

    注意,布尔型的get方法名字应为isXXX,例如:

    public boolean isMale(){
            return male;
            //布尔型的get方法名字是is
        }
    

    8、this关键字

    当方法的局部变量和类的成员变量重名时,根据就近原则会优先使用局部变量。

    如果需要访问本类当中的成员变量,需使用this关键字(方法内)

    this.成员变量名
    

    通过谁调用的方法,谁就是this

    9、构造方法

    专门用来创建对象的方法,当我们用关键字new创建对象时,new后面的语句就是在使用构造方法

    public 类名(参数类型 参数名称){
        方法体
    }
    

    注意:

    1. 构造方法的名称与类名必须完全一样
    2. 构造方法不要写返回值类型
    3. 构造方法不能return一个具体的返回值
    4. 如果没写构造方法,编译器会自动生成,没有参数,方法体什么都不做
    5. 构造方法也可以重载

    构造方法的主要作用是,方便在创建对象是设置成员变量

    10、定义一个标准的类

    标准的类包含以下四部分

    1. 所有成员变量都使用private进行私有化
    2. 每一个成员变量都有一堆get/set方法
    3. 编写一个无参构造方法
    4. 编写一个全参构造方法
    public class work_student {
        private String name;
        private int age;
    
        public work_student() {
        }
    
        public work_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) {
            this.age = age;
        }
    }
    

    以上为一个标准的类

    注意:在IDEA中构造方法和get/set方法可以通过IDEA自动生成,在Code--->Generate中

    相关文章

      网友评论

        本文标题:java学习笔记(六)面对对象

        本文链接:https://www.haomeiwen.com/subject/euzqdhtx.html