java之面向对象的基础知识

69 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第20天,点击查看活动详情

今天终于到面向对象部分了,依旧是一些基础知识。

  • 方法调用时大概类似于栈的压入压出
  • 基本数据类型中,变量里存储的是真实的数据

基本数据类型

数据值是存储在自己的空间中

  • 特点:赋值给其他变量,也是赋的真实的值

引用数据类型

数据值是存储在其他空间中,自己空间中存储的是地址值

  • 特点:赋值给其他变量,赋的是地址值
int[] arr1 = {1,2,3};
int[] arr2 = arr1;

关于方法传递参数的结论

  • 基本数据类型传递的是真实的数据
  • 引用数据类型传递的是地址值,如果形参改变,那么将会影响实际参数的值

面向对象

类和对象

  • 类(设计图):是对象共同特征的描述
  • 对象:是真实存在的具体东西

在java中,必须先设计类,才能获得对象

如何定义类

public class 类名 {
    1.成员变量(代表属性,一般是名词)
    2.成员方法(代表行为,一般是动词)
    3.构造器
    4.代码块
    5.内部类
}

如何得到类的对象?

类名 对象名 = new 类名()

Phone p = new Phone()

举个例子 Phone.java

package com.itheima.test;

public class Phone {
    //属性(成员变量)
    String brand;
    double price;
    //行为(方法)
    public void call(){
        System.out.println("手机在打电话");
    }
    public void playGame(){
        System.out.println("手机在玩游戏");
    }
}

PhoneTest.java

package com.itheima.test;

public class PhoneTest {
    public static void main(String[] args){
        //创建手机对象
        Phone p=new Phone();
        //给手机赋值
        p.brand="小米";
        p.price=1998;
        //获取手机中对象的值
        System.out.println(p.brand);
        System.out.println(p.price);
        //调用手机中的方法即可
        p.call();
        p.playGame();
        //创建新对象
        Phone p2=new Phone();
        p2.brand="苹果";
        p2.price=8999;
        p2.call();
        p2.playGame();

    }

}

!注意:

  • 类名首字母建议大写,需要见名知意,驼峰模式
  • 一个java文件中可以定义多个class类,且只能一个类是public修饰,而且public修饰的类名必须成为代码文件名。实际开发中建议海事一个文件定义一个class类。
  • 成员变量的完整定义格式是:修饰符 数据类型 变量名称=初始化值;一般无需指定初始化值,存在默认值,对象的成员变量的默认值规则如下:

image.png

面向对象三大特性:封装 继承 多态

封装

封装告诉我们该如何正确设计对象的属性和方法

  • 重要原则:对象代表什么,就得封装对应的数据,并提供数据对应的行为

private关键字

  • 是一个权限修饰符
  • 可以修饰成员(成员变量和成员方法)
  • 被private修饰的成员只能在本类中才能访问