Java面向对象笔记

面向对象

    //人,是一个类。打酱油,是人的一个动作, 也就是方法。

    //小红是人的一个对象。让小红去打酱油,就是调用了人的打酱油方法。

    public static void main(String[] args) {

       // 对象

       小红 = new ();

       // 调用方法 (叫她去打酱油)

       小红.打酱油();

       }

    class {//

       //方法

    public void 打酱油() {

    System.out.println("去打酱油了");

       }

    }

类:

类是事物属性(外在特征)和行为(具备功能)的集合。例如:狗

类的定义:

注意:

使用static修饰的属性和方法 (静态的),可以直接使用类名调用,没有使用static修饰的,必须使用对象调用

对象:

对象是类的具体体现,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。

对象声明:

声明一个对象,包括对象名称和对象类型。

实例化:

使用关键字 new 来创建一个对象。

初始化:

用 new 创建对象时,会调用构造方法初始化对象

对象具有属性和方法:
属性:

用于程序运行时保存数据

属性  (全局变量) :

在类中可以直接访问的量

一个Java文件中只能有一个public类,并且必须和文件名一样,可以没有这个类

在静态属性中 不可以调用非静态属性和方法   因为加载顺序不一样 类先被加载

在非静态属性中 可以直接调用静态属性和方法

在当前类中可以直接调用自身的属性和方法(不用.)

方法:

方法是一种将具有独立功能的代码块组织成为一个整体的编程概念,使其具有特殊功能,并且可以被重复调用。方法的定义包含了一个方法头和一个方法体。

具体来说,方法的基本结构包含以下部分:

1. 修饰符:修饰符是可选的,它用来告诉编译器如何调用该方法,并定义了该方法的访问类型。

2. 返回值类型:这是方法执行后返回的数据类型。有些方法可能无返回值。

3. 方法名:这是标识方法的名称。

4. 参数列表:参数是进入方法中的数据,有了这些数据,方法才能执行其逻辑。

5. 方法体:这是执行特定任务的代码块。

类型变量:

局部变量:

在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。

成员变量:

成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。

类变量(静态变量):

类变量也声明在类中,方法体之外,但必须声明为 static 类型

代码块:

员代码块:

实例化对象时运行,先运行成员代码块,再运行构造方法

静态代码块:

在类被加载时运行,优先运行静态代码块(先父类后子类)

补充:

Java中除了基本数据类型 其他的就是引用类型  有引用类型的默认值都为null   ;基本数据类型没有属性和方法,基本数据类型不是面向对象的 ,基本数据类型不能保存null值 ;Java为了实现万物皆对象的理念,提供了基本数据类型的封装类型

Byte   Short Integer  Long  Float  Double Boolean  Character

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

封装:

将类中的属性和方法,通过访问权限修饰符,控制访问(调用)权限

访问权限修饰符(依次减小):

public         公共的    谁都可以访问

protected      受保护的(家族性的) 只有子类本包下的类以访问

default         默认的(本包下的)

private        私有的(自生类中的)

继承:

继承可以使用 extends implements 这两个关键字来实现继承,子类继承父类 子类就拥有父类中声明的属性和方法  Java中只能单继承 一个类只能有一个直接父类  Java中可以依次多重继承

  • 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
  • 子类可以用自己的方式实现父类的方法。
  • 提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。
  • 继承的作用:减少代码的编写 规范了子类的行为
  • super this 关键字:

我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。

this关键字:指向自己的引用。

总结:

多态:

同一操作作用于不同对象,可以有不同的解释,产生不同的执行结果

静态多态(方法重载)----编译时多态:
      方法的重载:

方法重载的一个类中方法名一样,即为重载

       参数列表确定调用的方法:

              1、参数的类型

              2、参数的个数

              3、参数的顺序

动态多态(方法重写)------运行时多态:
方法的重写:

子类继承父类,对继承过来的方法进行重新定义,通过  @Override  验证是否是重写的方法

注意:

重写的方法 ,子类访问权限不能小于父类的访问权限;

重写的方法的返回值可以返回子类对象;

父类的变量可以指向任意子类对象,子类重写父类方法引发多态。

重写的静态方法只能更精确,可以返回对象。

限制:用static修饰的方法(静态的)不能被重写

变量调用静态方法取决于声明的类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值