首页 > 编程语言 >JAVA语言学习-Day3

JAVA语言学习-Day3

时间:2024-04-04 17:44:07浏览次数:23  
标签:JAVA 语言 子类 void Day3 接口 static 父类 public

参考教学视频:秦疆

Day3

面向对象

什么是面向对象

面向过程:第一步做什么,第二步做什么

面向对象:分类的思维模式,分类然后对某个分类下的细节进行面向过程的思索(以类的形式组织代码,以对象的方式组织(封装)数据)

static:和类一起加载

构造器

  • 必须和类的名字相同

  • 必须没有返回值类型,也不能写void

public class person(){
   public person(){}
}
  1. 实例化对象

  2. 定义有参构造,显示定义一个无参构造

  3. 使用new关键字,本质是在调用构造器

封装(高内聚,低耦合)

封装(数据的隐藏):通常,应禁止直接访问一个对象中数据的实际表示,而应通过接口来访问,这称为信息隐藏

属性私有,get/set

意义

  1. 提高安全性,保护数据

  2. 隐藏代码实现细节

  3. 统一接口

  4. 增加系统可维护性

继承

本质是对某一批类的抽象,Java中只有单继承

super:访问父类属性、方法,调用父类的构造器必须在子类的构造器的第一行

方法重写(@override)

非静态方法,子类继承父类,重写父类方法

  1. 方法名,参数列表必须相同

  2. 参数列表必须相同

  3. 修饰符范围可以扩大但不能缩小

  4. 抛出的异常范围,可以缩小但不能扩大

静态方法的调用只和左边,定义的数据类型有关

多态

*动态编译

  • 同一方法可以根据发送对象的不同而采用不同的行为方式

  • 一个对象的类型是确定的,但可以指向对象的引用的类型有很多

多态存在的条件

  1. 有继承关系

  2. 子类重写父类方法

  3. 父类引用指向子类对象

多态是方法的多态,属性没有多态性

instanceof和类型转换

obj instanceof String   //false 是否存在父子关系
  1. 父类引用指向子类的对象

  2. 把子类转换为父类,向上转型

  3. 把父类转换为子类,乡下转型;强转

  4. 方便方法的调用,减少重复的代码

static关键字

static和类加载时同步生成

import static java.lang.Math.random
public class test(){
   public staitc void main(){
       random();
  }
}

抽象类

abstract关键字

extends关键字

接口实现多继承

  • 抽象方法,只有方法的名字,没有方法的实现

  • 不能new抽象类,只能靠子类实现

  • 抽象类里面可以写普通方法,抽象方法必须在抽象类中

public abstract void doSomething();

接口的定义和实现

interface关键字

implements关键字

  • 只有规范。约束和实现分离:面相接口编程

  • 接口中的所有定义都是抽象的

  • 接口中定义的都是常量public static final

  • 接口不能实例化,里面没有构造方法

  • implements可以实现多个接口

public abstract void run();

内部类

一个java类中可以有多个class类,但只能有一个public class

  1. 成员内部类 通过外部类来实例化内部类

  2. 静态内部类

  3. 局部内部类 方法中定义

  4. 匿名内部类 不用将实例保存到对象中new Apple.eat();

异常

  • 异常指程序运行中出现的各种不期而至的情况,如:文件找不到、网络连接失败、非法参数等

  • 异常发生在程序执行期间,影响了正常的程序执行流程

  1. 检查性异常

  2. 运行时异常

  3. 错误ERROR:错误不是异常,而是脱离程序员控制的问题

异常处理

try、catch、finally、throw、throws

try{
   System.out.println(1/0);
}catch(ArithmeticException e){
   
}finally{
   
}

自定义异常

继承Exception类

public class MyException extends Exception(){
   private int detail;
   public MyException(int a){
       this.detail = a;
  }
   @Override
   public String toString(){
       return "NUM Exception";
  }
}
static void test(int num) throws Exception{
   if(num >10){
  throw new MyException(num);
}
}
public static void main(String[] args){
   try{
       test(11);
  }catch(MyException e){
       System.out.println("Exception Info:"+e);
  }
}

Day4

常用类

  • Object类:hashcode(),toString(),clone(),getClass(),notify(),wait(),equals()

  • Math类:常见的数学运算

  • Random:生成随机数、UUID

  • File类:创建文件、查看文件、修改文件、删除文件

  • 包装类:自动装箱和拆箱

  • Date类:Date,simpleDateFormat,Calender

  • String类:不可变性final(操作量较少)

  • StringBuffer:可变长(多线程大量数据)

  • StringBulider:可变长(单线程大量数据)

集合框架

  • Collection:List(ArrayList,LinkedList)、Set(HashSet,TreeSet)、Vector、Stack

  • Map:(HashMap,TreeMap)

  • 泛型

IO流处理

  • 字节流:OutputStream、InputStream

  • 字符流:Reader、Writer

  • 节点流:CharArrayReader、StringReader、pipe(管道流)、PipedOutputStream

  • 处理流:序列化、Buffer、Data、转换流、Filter、Print

标签:JAVA,语言,子类,void,Day3,接口,static,父类,public
From: https://www.cnblogs.com/-Gin/p/18114415

相关文章

  • 03-Java框架FTPClient 使用rename()移动文件和文件重命名
    1需求由于业务种种原因,现在需要将ftp中已存文件移动到其它文件夹。2初始策略一开始走上弯路,直接翻看FTPClientAPI有无move方法,但没发现:于是曲线救国,想着采用先复制、再删除,伪代码:InputStreaminputStream=ftpClient.retrieveFileStream("/AAA/test.txt");ftpClient.st......
  • Java 程序执行过程
    Java程序的执行过程Tips:对于java程序的执行的过程,参考了两张图片来理解,并主要参照图2进行讲解!(这里不对具体的内容进行详细讲解,对于具体的内容,将给出参考的链接)图1:JVMModel图2:Java运行流程java的执行可以分为编译和运行两个阶段,分别对应着图2的左侧和右侧部分这部分我......
  • JAVA IO流学习1
    目标:File类:File类是java.io包中很重要的一个类File类的对象可以代表一个文件或者目录,可以修改文件大小、文件最后修改日期、文件名等File对象不能操作文件的具体数据,即不能对文件进行读和写的操作File的构造方法:File(Stringpathname) -------指定文件(目录)名和路径创建......
  • Java:多线程-继承Thread类
    在Java中,通过继承Thread类是实现多线程的一种方式。这种方式允许你创建自己的线程类,并定义线程执行的具体内容。以下是关于继承Thread类的详细讲解:继承Thread类的步骤创建线程类:创建一个继承自Thread的子类。重写run方法:在子类中重写run方法,定义线程执行的任务。run方法是......
  • Java:多线程相关知识概念
    Java中的多线程是指在单个程序中并行执行多个线程(即执行路径或任务)的能力。多线程在Java中是一个核心概念,它允许应用程序更有效地利用CPU资源,同时还能进行并发操作。以下是Java中多线程相关的详细知识:线程的基本概念线程(Thread):是操作系统能够进行运算调度的最小单位。它......
  • c语言中关于字符数组赋值问题
    一维数组代码#include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;constintN=1010;charstr[N];charst[N];chars1[N];chars2[N];/*abcdeabcdeabcdeabcde*/intmain(){ scanf("%s",&str+1); ......
  • Java解决跨域问题
    importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importorg.springframework.web.servlet.config.annotation.CorsRegistry;importorg.springframework.web.servlet.config.annotation.WebMvcCo......
  • c语言:模拟字符串拷贝功能(strcpy),面试题
    面试题:优化中的优化(10分满分)字符串拷贝:是将一个字符串的内容复制到另一个字符串中的操作。运用函数模拟字符串拷贝:(5分)模拟字符串拷贝#include<stdio.h>voidmy_strcpy(char*dest,char*str){ while(*str!='\0') { *dest=*str; str++; dest++; } *dest......
  • java计算机毕业设计(附源码)音乐播放平台(ssm+mysql+maven+LW文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着数字时代的到来,音乐播放平台已经成为了人们生活中不可或缺的一部分。这些平台通过互联网提供了大量的音乐资源,使得用户可以随时随地欣赏到自己喜欢的......
  • java计算机毕业设计(附源码)音乐播放器app(ssm+mysql+maven+LW文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:在当今的数字化时代,音乐已经成为人们日常生活中不可或缺的一部分。随着智能手机和移动互联网的普及,音乐播放器app应运而生,为人们提供了随时随地欣赏音乐......