0


大数据Java基础DAY7(面向对象基础)

面向对象

1、什么是面向对象的思想?
面向对象的思想是基于面向过程的思想发展而来的。

面向过程:强调的是实现功能的每一个步骤
 面向对象:强调的是对象,然后由这个对象去调用功能

2、面向对象的特点:
1)、是一种更加符合我们现实生活习惯的思想
2)、可以将复杂的事情简单化
3)、我们从之前的参与者(执行者)变成了指挥者

类与对象的关系:

类:是一组相关的属性和行为的集合

对象:是该类事物的具体体现

举例: 类 学生

对象 班长就是一个对象

类的定义:

现实世界的事物

属性 : 人的身高,体重等

行为 :人可以学习,吃饭等

Java中用class描述事物也是如此, 成员变量 :就是事物的属性。 成员方法 : 就是事物的行为

定义类其实就是定义类的成员(成员变量和成员方法)

//创建一个老师类
class Teacher{
    //定义teacher的属性(成员变量)
    String name;  //定义姓名
    int age;      //定义年龄
    String sex;   //定义性别

    //定义teacher的行为(成员方法)
    public void teach(){          //定义一个教学生的方法
        System.out.println("教学生");
    }

}

如何使用刚才创建的类呢?

创建对象: 类名 对象名 = new 类名();

调用方法: 对象名.成员变量 /对象名.成员方法

public class Test1 {
    public static void main(String[] args) {
        Teacher teacher=new Teacher();

        teacher.age=22;  //调用Teacher类的年龄属性,给其赋值
        System.out.println(teacher.age); //输出
        teacher.teach();  //调用Teacher类的成员方法
    }
}

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

1.在类中的位置不同

成员变量 :类中方法外 局部变量 :方法内或者方法声明上

2.在内存中的位置不同

成员变量 :堆内存 局部变量 :栈内存

3.生命周期不同

成员变量 :随着对象的存在而存在,随着对象的消失而消失

局部变量:随着方法的调用而存在,随着方法的调用完毕而消失

4.初始化值不同

成员变量:有默认的初始化值

局部变量: 没有默认的初始化值,必须先定义,赋值,才能使用。

注意:局部变量和成员变量的名字一样时,在方法调用时采用就近原则。

形式参数的问题

1.当形式参数是基本数据类型时,将来调用方法传入的是常量值,或者是该类型的变量。

class Number{
    public int getSum(int a,int b){  //在一个类中定义一个求和方法
        return a+b;
    }
}
public class Test2 {
    public static void main(String[] args) {
        Number number=new Number();//在测试类中创建一个Number类的对象,只有创建了对象才能调用类中的方法

        System.out.println(number.getSum(10,20));//调用Number类中的求和方法,并输出结果。
    }
}

若在方法中对变量修改,不会影响到外部实际在栈内存中的值。

2.当形式参数是引用数据类型,调用方法传入的是该类对象的地址值

class Student2 {
    public void study() {   //在Student中创建一个学习的方法
        System.out.println("学习");
    }
}
class StudentTest2 {
    public void function(Student2 s) {   //创建StudentTest类,创建方法引用Student类的方法
        s.study();
    }
}
public class Test3 {
    public static void main(String[] args) {
        StudentTest2 studentTest2 = new StudentTest2();//想要调用function方法,需创建StudentTest2的对象

        Student2 student2 = new Student2();//创建Student2的对象
         studentTest2.function(student2);  //调用方法
    }
}

若在方法中对变量修改,会影响到外部实际堆内存中的值。

匿名对象

匿名对象:就是没有名字的对象,是对象的一种简化表示形式

匿名对象的两种使用情况 :

对象调用方法仅仅一次的时候 ;作为实际参数传递。

引用上面的学生类,new完对象后直接使用,:

class Student2 {
    public void study() {   //在Student中创建一个学习的方法
        System.out.println("学习");
    }
}
class StudentTest2 {
    public void function(Student2 s) {   //创建StudentTest类,创建方法引用Student类的方法
        s.study();
    }
}
public class Test3 {
    public static void main(String[] args) {
        StudentTest2 studentTest2 = new StudentTest2();//想要调用function方法,需创建StudentTest2的对象

        Student2 student2 = new Student2();//创建Student2的对象
         studentTest2.function(student2);  //调用方法

        new StudentTest2().function(new Student2());//当new 完对象后直接使用,没有使用变量名接收的对象,称之为匿名对象
    }
}

注意:匿名对象不适合多次调用,每次new的时候都是一个新的匿名对象,会频繁的在堆内存中开辟空间,匿名对象使用完毕之后,无法使用第二次。

面向对象三大特征——封装https://blog.csdn.net/qq_52400447/article/details/122520149

标签: java idea 大数据

本文转载自: https://blog.csdn.net/qq_52400447/article/details/122502471
版权归原作者 16年义务教育 所有, 如有侵权,请联系我们删除。

“大数据Java基础DAY7(面向对象基础)”的评论:

还没有评论