Java面向对象知识(上:基础篇)

Posted 不爱熬夜的朱霸霸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面向对象知识(上:基础篇)相关的知识,希望对你有一定的参考价值。

一、面向对象的思想

1、什么是面向对象

说到面向对象,与之相应的还有面向过程的。接下来我会顺带讲解面向过程。通过两者的比较,有利于更好的了解

1.1 面向过程

什么是面向过程?

【举个栗子😊】
一件事儿- 用面向过程的角度来看,把大象装进冰箱。他的步骤和顺序有:
1->打开冰箱、2->把大象塞进去、3->关闭冰箱门
这里我们着重这件事的步骤和动作

📌 面向过程 强调过程和过程中所涉及的行为(强调行为、动作、过程)

1.2 面向对象

什么是面向对象?

【举个栗子😃】
同样以上个例子为例,把大象放到冰箱这个行为。我们主要是对冰箱这个对象进行一系列操作的。所以我们可以把这些动作赋给冰箱。比如打开冰箱、存入大象、关闭冰箱等功能。

📌 面向对象 强调把一些细化的步骤组合起来称为一个整体,把功能封装到对象,由一个实例化的对象去实现这些操作,强调具备功能的对象。

在面向对象的编程思想中,往往会涉及类和对象这两个概念,下面就会给大家讲述类和对象的概念以及用法

二、类和对象

2 .1 类

什么是类

✒️ 类是对现实生活中的具有共同属性和行为的抽象

🚩打个比方:猫这个字就好比一个类,因为它是所有猫类的统称。它是对一些具体品种猫的统称和概括。

2.1.1 类的组成

⚠️属性行为构成。学了类之后我们以后脑海中始终要有连锁反应——提到类,就马上想到属性和行为。

❗️ 属性
是对象具有的各种特征,每个对象的每个属性都有特定的值。

打一个手机的比方。手机就好比是一个类,手机有不同的品牌,有小米、苹果、魅族;有颜色,有黑色、白色;有不同的价格,有2999的、有3999的;
那么在这里品牌、颜色、价格就是手机的属性。因为每部手机都具有这些特征。

❗️ 行为
是对象能够执行的操作

同样,比如说手机,手机能执行什么操作呢?手机可以打电话发信息拍照等。因此打电话、发信息、拍照就是类的行为。

2 .2 对象

什么是对象
✒️
万物皆是对象,对象是对类的实例化。

如上面猫的比方。猫是一个抽象的类。那么猫的对象就可以具体到某一个实实在在的、看的见的猫。

三 、类和对象在代码中的运用

3.1 类的应用

类由属性行为构成:
❗️ 属性在类中用成员变量来体现(类中方法外的变量)
❗️ 行为在类中用成员方法来体现(相比前面的方法去掉static)

3.1.1 类定义的格式


下图是一个实际应用:

代码块
public class iphone {
    String brand; //品牌
    String model;//型号
    double price;//价格


    public void call(){
        System.out.println("打电话");

    }
    public void senMessage(){
        System.out.println("发信息");

    }


}

3.2 对象的应用

3.2.1 创建对象的格式以及调用

代码块
public class iPhonetest {
    public static  void main(String[] args) {
        //
        iphone p= new iphone();//创建对象
        p.brand="苹果";
        p.price=5999;
        p.model="ipad pro 2021";
        System.out.println("品牌:"+p.brand);
        System.out.println("型号: "+p.model);
        System.out.println("价格:"+p.price);
        p.call(); //调用
        p.senMessage();//调用方法


    }

}

3.3 成员变量和局部变量

1、成员变量:
✒️ 类中且方法外的变量。 成员变量又分为:
1️⃣ 类变量(静态变量):
被static所修饰的成员变量,是属于类的部分,属于类的范畴。

2️⃣实例变量(非静态变量):
没有被static修饰的成员变量,是属于类的部分,但是属于对象的范畴。

2、局部变量:
✒️ 定义在方法中的变量,属于方法的范畴。比如方法内定义的形参,方法内定义的变量。

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

区别成员变量局部变量
类中位置不同类中且方法外方法内或声明上
内存中位置不同堆内存栈内存
生命周期不同随着对象的存在而存在,随着对象的消亡而消亡随着方法的调用而存在,随着方法的调用完毕而消亡
初始化不同有默认的初始化没有默认初始化值,必须先定义,赋值,才能使用。

四、封装

4.1 封装概念

✒️用关键字private将类中的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的访问和操作。

目的:直接通过对类对象的操作来达到目的,不需要对具体实现十分了解,让类的属性和方法具体实现对外不可见,起到保护作用。

4.2 封装的实现

封装实现的步骤

在前面介绍过,封装是使用关键字private来对类的某些信息进行隐藏,在外部使用提供的set()、get()方法来进行调用。下面我们将会从private开始讲起。

4.2 private关键字

private
✒️ 是一个权限修饰符
✒️ 可以修饰成员(成员变量和成员方法)
✒️ 作用是保护成员不被别的类使用,被private修饰的成员只在本类中才能访问。针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作。

封装代码

    String name;
    // int age
    private  int age;
    //提供get、set方法
    public void setAge(int a){
//        age=a;
        if(a<0||a>100){
            System.out.println("你输入的年龄有误");
        }else {
            age=a;
        }
    }
    public int getAge(){
        return age;
    }
    //成员方法
    public void Get(){
        System.out.println(name+","+age);
        System.out.println("打遍天下无敌手");


    }

测试类代码

public class StudentTest {
    public static void main(String[] args) {
        Student p= new Student();
        p.name="林青霞";
//        p.age=18;
        p.setAge(30);
        p.Get();


    }



}

❗️ 注意 方法调用方法要在主函数内进行。

以上是关于Java面向对象知识(上:基础篇)的主要内容,如果未能解决你的问题,请参考以下文章

Java基础面试题总结(转)

Java基础编程篇(4.面向对象上)

(Java实习生)每日10道面试题打卡——Java基础知识篇

(Java实习生)每日10道面试题打卡——Java基础知识篇

Java面试知识点总结-JavaSE基础篇(持续更新)

JavaScript 面向对象——基础篇