Java基础-类和对象【面向对象编程】

1.面向对象编程的概念

     1)万物皆是对象

     2)指以属性(特征)和行为的观点去分析现实生活中的事物【首先对特征和行为进行分析】

    面向对象编程

     3)先对面向对象的思想进行分析,然后使用面向对象的编程语言进行表达的过程

     4)C:面向过程 C++:面向过程+面向对象 Java:纯粹的面向对象; 

           面向过程:布置任务,取上课,各个时间段干啥,就是所有的过程以及步骤;

           面向对象:我是个对象,分析特征(熟悉,是否具备讲师特征,讲课的行为是否具备)明天你就去给xx接课

     5)产业发展的需求

     6)三大精髓封装、多态、继承

2.类和对象的概念

    1)对象:现实客观存在的实体,java中体现为内存空间中的一块cun

    2)类:分类,具有相同特征和行为的多个对象共性的抽象描述,在java中语言种体现为一种引用数据类型,里面包含描述特征/属性的成员变量以及描述行为的成员方法;

    3)类是用于构建对象的模版,对象的数据结构由定义他的类决定

    4)类的定义:                   

class 类名{

                    类体

             }

             类名有多个单词,应首字母大学,即”驼峰命名法“

        5)成员变量的定义

             数据类型 成员变量名 = 初始值;

             规定:成员变量有多个单词组成,通常从第二个单词的首字母大写

       6)对象的创建

              new 类名();

              本意:类定义完成后,用new关键字创建该类的对象,这个过程话叫类的实例化;

              实质:创建对象的本质是在内存空间的堆区申请一块存储区域,存放该对象独有的特征信息;

       7)引用的定义       

              基本概念:

              a.使用引用数据类型定义的变量,简称引用

              b.引用变量主要用于记录对象在堆区中的内存地址信息,便于访问

            

            语法格式:

             类名 引用变量名;

             引用变量名.成员变量名;             

       8)案例题目  

eg1:       

             class Person(){

                String name;

             }

              new Person();

             eg2:

              Person p = new Person();

               p.name = “我是你”;

               sout(p.name);

       9)Person类代码执行流程

ps:小编的画图水平并不高,敬请见谅!!!

         

3.成员方法的定义

         1)内部的内容

         2)class 类名{

              返回值类型 成员方法名(形参列表){

                   成员方法体;

                 }

                }

         成员方法由多个单词组成是,要求从第二个单词起每个单词的首字母大写。

        3)返回值类型:返回值的数据类型,可以为基本数据类型,也可引用数据类型(方法体内返回方法体外,使用return,遇到return方法结             束)

        4)形参列表:多个形参,数据从方法体外-> 方法体内,无初始值。

        5)成员方法可以实现代码重用,简化代码。

        6)成员变量与成员方法在同一个类中,成员方法可以访问成员变量

        7)实参对形参进行初始化操作,个数、类型、顺序都要完全一致,可以传直接量、变量、表达式、

        8)调用方法的本质是根据方法名跳转过去执行方法在这个位置

        9)有参无返回值的成员方法的使用

package com.lagou.module1.prject2;
//降低了代码的耦合性,即代码的解藕合
public class Person {
    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;
    }

    //定义成员变量
    //人的特征,姓名
    String name;
    int age;
//以参数的形式传入姓名和年龄
//开发中使用的最多的是单独的模式,改一个都要改,比较麻烦
    void setNameAge(String name,int age){
        this.name = name;
        this.age = age;
    }

    void show(){
        System.out.println("我是"+name+",今年"+age);
    }

    void showall(int... args){
        for(int i = 0;i < args.length;i++){
            System.out.println("i的值是"+i+args[i]);
        }
    }
    public static void main(String[] args) {
        //声明person对象只想person类
        Person p = new Person();
        //打印对象中的成员变量值;
        //引用变量名 成员变量名
        System.out.println("我是"+p.name+",今年"+p.age);
        //引用数据类型默认值是null,基本数据类型默认是0
        System.out.println("------------------------------------------------------");
        p.name = "章三";
        p.age = 38;
        System.out.println("我是"+p.name+",我的名字是"+p.age);
        System.out.println("------------------------------------------------------");

        p.setNameAge("关羽",40);
        p.show();
        p.showall(1,2,3,4,5,6);
    }

}

4.可变长参数的使用

参数的长度可以发生改变

    返回值类型 方法名(参数的类型 ... 参数名),参数个数可变,参数包含固定也包含可变长参数,则可变长放在列表末尾

    自定义成员变量使用可变长参数,当成一位数组使用

 void showall(int... args){
         for(int i = 0;i < args.length;i++){
             System.out.println("i的值是"+i+args[i]);
         }

5.成员变量与局部变量之间的区别

     1)声明位置不同:成员变量是写在累的内部,方法体的外部。局部变量是方法体内部的

     2)作用域不同:成员变量声明开始到类体结束,局部变量是从声明开始到方法体结束

6.方法传参的过程

7.参数传递的注意事项

      1)基本数据类型:作为形式参数时,形参变化不影响实参变化,分别存储在不同的内存块

      2)引用数据类型:作为形式参数时,形参变化影响实参变化,因为引用数据类型传递的是堆内存地址,存储在同一块内存区域

      3)引用数据类型:作为形式参数时,形参指向发生改变后,数值改变不影响实参变化,因为引用数据类型传递的是堆内存地址,不存储在同一块内存区域

喜欢本文的朋友们,欢迎长按下图关注订阅不得不说叔,收看更多精彩内容

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章