首页 > 编程语言 >Java面向对象

Java面向对象

时间:2023-01-09 16:47:17浏览次数:40  
标签:异常 Java 对象 子类 方法 面向对象 父类 重写

面向过程&面向对象


image-20230108133540351

一、什么是面向对象


image-20230108134035858

二、类与对象的关系


image-20230108141057334

三、创建与初始化对象


image-20230108142610552

  • NEW关键字的作用:

    1.实例化初始对象
    
    2.内存开辟一个空间
    
    3.把等号右边开好的对象内存地址通过赋值运算符赋值给左边的对象名
    

image-20230108142634658

  • 构造器的作用:

    image-20230108143538844

四、内存分析


image-20230108145147283

五、类与对象

#### 1.类与对象
类是一个模板:抽象,对象是一个具体的实例

#### 2.方法
定义、调用

#### 3.对象的引用
引用类型:基本类型(8种)
对象是通过引用来操作的:栈 --> 堆

#### 4.属性
属性:字段 Field 成员变量
语法:修饰符  属性类型  属性名 = 属性值
默认初始化:
数字:0、0.0
char:u0000
boolean:false
引用:null

#### 5.对象的创建和使用
- 必须使用new关键字创建对象
- 构造器 Person person = new Person();
- 对象的属性:person.name;
- 对象的方法:person.sleep();

#### 6.类
静态的属性  属性
动态的行为  方法

六、封装


image-20230108151040938

  • 封装的作用

    1.提高程序的安全性,保护数据
    2.隐藏代码的实现细节
    3.统一接口
    4.增加系统的可维护性
    

七、继承


image-20230108154500866

八、Object类


  • java.lang.Object

  java.lang包在使用的时候无需显示导入,编译时由编译器自动导入。
  Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类。
  Object类是Java中唯一没有父类的类。
  其他所有的类,包括标准容器类,比如数组,都继承了Object类中的方法。
  • String toString()

当打印引用,如调用System.out.println()时,会自动调用对象的toString()方法,打印出引用所指的对象的toString()方法的返回值,因为每个类都直接或间接地继承自Object,因此每个类都有toString()方法。

public String toString()
{
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

九、方法重写


1.方法重写的原因: 父类方法的功能不满足子类的功能需求。

2.方法重写的前提: 必须要存在继承的关系。

3.方法的重写: 子父类出了同名的函数,这个我们就称作为方法的重写。

4.什么是时候要使用方法的重写:父类的功能无法满足子类的需求时。

5.方法重写要注意的事项:

1.方法重写时, 方法名与形参列表必须一致。
2.方法重写时,子类的权限修饰符必须要大于或者等于父类的权限修饰符。
3.方法重写时,子类的返回值类型必须要小于或者 等于父类的返回值类型。
4.方法重写时, 子类抛出的异常类型要小于或者等于父类抛出的异常类型。Exception(最坏) RuntimeException(小坏)

十、方法重载


1.方法的重载:在一个类中 存在两个或者两个 以上的同名函数,称作为方法重载。

2.方法重载的要求

函数名要一致。
形参列表不一致(形参的个数或形参 的类型不一致)
与返回值类型无关。

十一、多态


image-20230108162544839

  • 解释

    image-20230108163521056

  • 多态注意事项:

    image-20230108164105926

十二、抽象类


image-20230109134101752

十三、接口


image-20230109135303729

  • 作用

    image-20230109145420649

十四、内部类

image-20230109145606129

十五、static 静态


位置 : 成员变量 ( 属性 ) 、 方法 、 静态代码块

  • **作用 **

    常驻内存 ( 在内存里单独划一块空间 ) 用来重复经常调用的时候
    成员变量 : 静态变量 , 又叫类变量 , 可以直接使用类名来引用 。 类公有变量
    方法 : 静态方法 , 又叫类方法 , 可以直接使用类名来引用 , 通常放通用代码 。
    块 : 静态块 , 只在第一次调用构造方法前执行 。 适合放那些只要一次初始化即可的代码 
    
    final最终、终结
    位置 : 类 、 变量 、 方法
    类 : 太监类 、 不可继承
    成员变量 : 常量
    方法 : 不可重写
    

访问修饰符protected 可以修饰属性和方法

本类、同包、子类可以访问

访问修饰符 本类 同包 子类 其他
private
默认****(friendly)
protected
public

十六、异常

1.什么是异常

image-20230109150813081

2.简单分类


image-20230109151346115

3.异常体系结构


image-20230109151442659

4.Error


image-20230109151700177

5.Exception


image-20230109151901126

6.异常处理机制


  • 抛出异常

    public static void main(String[] args) {
            Test test = new Test();
            //test.test(1,1);
            test.test(1,0);
        }
    
        //假设这个方法中处理不了这个异常(throws在方法上抛出异常)
        public void test(int a, int b) throws ArithmeticException {
            if (a / b == 1) {
                //主动抛出异常(throw在方法里使用)
                throw new ArithmeticException(); //算术异常
            }
        }
    
  • 捕获异常

    //监控区域
            try {
                System.out.println(1 / 0);
            }
            //捕获错误
            catch (Error e) {
                System.out.println("Error");
            }
            //捕获异常
            catch (Exception e) {
                System.out.println("Exception");
            } catch (Throwable e) {
                System.out.println("Throwable");
            }
            //善后工作
            finally {
                System.out.println("finally");
            }
    
  • 异常处理五个关键字

    image-20230109152407200

7.自定义异常


image-20230109155509184

8.实际应用中的经验总结


image-20230109161402561

标签:异常,Java,对象,子类,方法,面向对象,父类,重写
From: https://www.cnblogs.com/ynxiyan/p/17037473.html

相关文章

  • Java基础学习05
    通过一道简单的算法题找路问题总结一下一些小结论。问题:在迷宫中找到一条通路并计算长度(2023-01-09)解法:首先利用二维数组创建迷宫,创建一个类,调用类中的方法实现问题解决,方......
  • VsCode里面运行mvn命令显示The JAVA_HOME environment variable is not defined corre
    问题描述关于这个问题,就是环境配置出了问题!!!问题解决在settings.json里面,配置的环境的路径不能出错,我就是在配置的时候,名为Environments的文件夹写成Environment了,才......
  • java SSL加密传输
    网络传输是存在风险的,因此对服服务端和客户端进行安全校验和传输信息的加密就显得非常的重要。上面一句有点拗口,简单解释如下文: 当客户使用SSL向站点服务器发送请求时......
  • Java工作流详解(附6大工作流框架对比)​
    ​目录​1.什么是工作流​2.工作流应用场景​3.工作流实现方式​4.有哪些工作流框架?​5.1.Activiti6.2.Flowable7.3.Camunda8.4.jBPM9.5.osworkflow,6.jflow.​10.工作流......
  • Java面试题Day06
    1.如何将字节流转为字符流?InputStreamReader是字节流通向字符流的桥梁BufferedReaderin=newBufferedReader(newInputStreamReader(System.in))OutputStreamWriter......
  • 倒排索引的 JAVA 简单实现
      倒排索引的简单JAVA实现,当玩具其实都很粗糙,简单实现下原理:publicclassIntertedIndex{//倒排索引privateMap<String,List<String>>indexMa......
  • Java内存区域有哪些构成?
    目录前言Java内存区域程序计数器虚拟机栈本地方法栈堆方法区字符串常量池运行时常量池直接内存小结作者:小牛呼噜噜|https://xiaoniuhululu.com计算机内功、JAVA底层......
  • javascript将文本转语音功能
    通过jiavascript将文本内容转化为语音播放,代码如下:<body><buttononclick="start()">点击</button><script>vartext='语音输入开始'var......
  • java根据xml节点地址获取指定节点内容
    备好几个前同事问过怎么获取xml指定节点内容后,终于决定写个工具类,今天特地分享给大家,写的不好,不要喷maven依赖包<dependency><groupId>dom4j</groupId><artifactId>do......
  • java文件夹和文件
    本文主要讲述java如何创建文件夹和文件题目:指定路径,判断当前路径是否有目标文件夹,如果没有,则创建;如果有,在目标文件夹下创建目标文件【txt文件】,并使用转换流+处理流写入......