Java简单笔记(一)(面向对象编程)

在这里插入图片描述
局部变量和成员变量:
在这里插入图片描述

一:
JAVA同一个包下,不同java文件中的类可以直接引用,不需要import,可以这样一个java文件类里写mian函数,其他JAVA文件类写功能类

二:
JAVA一个文件一个类

三:
JAVA 构造方法可以有多个(传入的变量数目、变量顺序、变量类型要不同),类中同名方法也可以有多个(传入的变量数目、变量顺序、变量类型要不同)即 方法的重载,如果重写父类方法(与父类方法同名且传入参数和返回值都相同)即为方法的重构

四:JVM中的堆区、栈区、方法区

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
五:方法重载
在这里插入图片描述
六:this
this代表的对象不同,因为相同一个类每创建一个对象,所创建的对象都不同。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
七:
在这里插入图片描述
八:封装
在这里插入图片描述
九:static关键字
类似于定义python中的类属性、类方法

在这里插入图片描述

在这里插入图片描述
十:单例设计模式
关键所在是把构造方法进行私有化,导致无法按正常步骤在外界创建实例,只能在类中创建实例,进而类.实例 都为同一个实例。
在这里插入图片描述

在这里插入图片描述
十一:继承
在这里插入图片描述

十二:super关键字和this关键字的比较
在这里插入图片描述
十三:方法的重写
在这里插入图片描述
十四:final关键字
在这里插入图片描述
十五:对象的创建过程
在这里插入图片描述
案例
在这里插入图片描述
十六:多态
在这里插入图片描述

在这里插入图片描述
十七:引用类型之间的转换
在这里插入图片描述
注意:编译通过并不代表能运行成功!!!!!!!!!!!!!!!!!!!!

强制类型转换的意义:原本父类引用p指向子类对象s(向上转换),这时候形成多态,但是p无法使用父类中没有的方法,只能使用父类方法和被子类重写的方法,这时候想用p去使用子类中的独有方法时就得将p强制类型转换成子类,用instanceof判断p实际指向哪个对象,因为p指向s对象,所以p能强制类型转换成s从而父类引用p能使用子类对象s中的方法

在这里插入图片描述
instanceof运算符
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
十八:多态意义实例
父类去接收不同的子类实例,执行时根据传入的子类去调用不同内容的继承方法。
如:父类为A,有方法A()
子类a,继承父类方法A()
子类aa,继承父类方法A()
父类作为方法的参数如 draw(A 形参){
形参.A()//执行时根据传入的子类不同,而执行具体的A()方法,从而实现一个类型,不同的形态方法
}

这样写一方法就能接收多个对象,方便使用减少冗余!!!!!
子类如果只有两三个还好,如果子类有成千上百个的话,如果要执行每个子类中同一个从父类继承并重写了的方法A的话,就得依次实例化子类再调用各自方法。如果使用多态的话,只需要写一个方法,方法的参数列表中为所有子类的父类,调用这个方法传入不同子类实例为方法参数,实现向上转型,在调用
方法A的时候就会根据具体传入的实例去执行该实例的这个方法A,就不要写很多的子类实例.A()的语句了。
在这里插入图片描述

在这里插入图片描述
十九:抽象类
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
抽象类练习:
抽象类Account:

package Day12;

public abstract class Account {
    private int money;
    public Account() {
    }
    public Account(int Money){
        this.setMoney(Money);
    }

    public void setMoney(int money) {
        this.money = money;
    }

    public int getMoney() {
        return money;
    }

    public abstract double sum_Interest();

}

继承自抽象类的子类:

package Day12;

public class FixedAccount extends Account {
    public FixedAccount() {
        super();
    }
    public FixedAccount(int money) {
        super(money);
    }

    @Override
    public double sum_Interest() {
        double interest;
        interest = super.getMoney() * 0.12;
        return interest;
    }

    public void aaa(){
        System.out.println("子类特有的方法");
    }
}

测试main类:

package Day12;

public class TestFixedAccount {
    public static void main(String[] args) {
        Account acc = new FixedAccount(100);
        double bbb = acc.sum_Interest();
        System.out.println(bbb);

//        调用子类特有方法
        Account acc2 = new FixedAccount();
        /*强制类型转换*/

        FixedAccount fixacc = (FixedAccount) acc2;
        fixacc.aaa();
    }
}

二十:接口
解决了JAVA的类没有多继承只有单继承的一些问题
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

例子:
Gold继承自两个接口:
在这里插入图片描述
接口一:
在这里插入图片描述
接口二:
在这里插入图片描述
测试类:
在这里插入图片描述
二十一:内部类
内部类可以形象的看成 学校里的食堂,食堂是学校这个类中的另一个类。为了更好的解决没有多继承的问题。

在这里插入图片描述
在这里插入图片描述
成员内部类:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

局部内部类:
局部内部类只能在定义它的方法或代码块中使用。
在这里插入图片描述

在这里插入图片描述
匿名内部类:
在这里插入图片描述
外部类:
在这里插入图片描述
在这里插入图片描述
内部类是一个接口:
在这里插入图片描述

测试:
在这里插入图片描述

静态嵌套类:
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java面向对象程序设计第三版耿祥义第一章主要介绍了Java的基础知识和面向对象的概念。 1. Java语言的特点 Java语言是一种面向对象的编程语言,具有以下特点: - 简单易学:Java语言的语法类似C++,但是去掉了C++中比较难理解的特性,使得Java更加容易学习和使用。 - 面向对象:Java语言是一种纯面向对象的编程语言,所有的程序都是由对象组成的。 - 平台无关性:Java语言可以在不同的操作系统和硬件平台上运行,只需要安装相应的Java虚拟机即可。 - 安全性:Java语言的安全性非常高,可以在不信任的环境下运行程序,避免了一些安全漏洞。 - 高性能:Java语言的运行速度比较快,且可以通过各种优化技术来提高性能。 2. 面向对象的概念 面向对象是一种软件设计的思想,其核心是将问题看作是由对象组成的。对象是指具有一定属性和行为的实体,属性是对象的特征,行为是对象的动作。 在面向对象的设计中,需要考虑以下几个方面: - 类的设计:类是创建对象的模板,需要定义类的属性和方法。 - 对象的创建:创建对象时,需要使用new关键字来调用类的构造方法。 - 对象的访问:访问对象的属性和方法时,需要使用点号操作符来进行访问。 - 继承和多态:继承是指一个类可以继承另一个类的属性和方法,多态是指同一种行为可以用不同的方式实现。 3. Java的基础知识 Java语言的基础知识包括数据类型、运算符、流程控制语句等。 - 数据类型:Java语言的数据类型包括基本数据类型和引用数据类型。基本数据类型包括整型、浮点型、字符型和布尔型,引用数据类型包括类、接口、数组等。 - 运算符:Java语言的运算符包括算术运算符、关系运算符、逻辑运算符、位运算符等。 - 流程控制语句:Java语言的流程控制语句包括if语句、switch语句、for循环、while循环、do-while循环等。 4. Java程序的基本结构 Java程序的基本结构包括类的定义、方法的定义和语句块的定义。 - 类的定义:类是Java程序的基本组成单元,需要使用class关键字来定义类。 - 方法的定义:方法是类中的一个函数,用于实现特定的功能,需要使用方法名、参数列表和返回值类型来定义方法。 - 语句块的定义:语句块是一组语句的集合,需要使用大括号来定义语句块。 总的来说,Java面向对象程序设计第三版耿祥义第一章介绍了Java语言的基础知识和面向对象的概念,为后续的学习打下了基础。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值