JAVA教程 从入门到精通 Day9

Java基础入门知识总结 Java基础入门: 1.计算机的基础知识(day01) 2.Java语言基础(day02-day06) 3.Java面向对象(day07-day10) 4.Java开发工具(day11) 5.Java常见对象(day12-day14) 6.Java集合框架(day15-day19) 7.JavaIO流(day20-day22) 8.Java多线程(day23-day24) 9.JavaGUI(day25) 10.Java网络编程(day26) 11.Java反射(day27) 视频教程:黑马程序员全套Jav 阅读详情

4.11 包 package

机制:

  • 包的信息存在于java代码的第一行 类的上面
  • 包的定义规范:com.yjxxt.xxxx
  • 标识符规范:全部小写

作用:

  • 方便管理众多资源
  • 引入多重命名空间

导包:

  • 导包指明要使用的资源的所在位置
    • 使用的位置 使用权限定名java.until.Scanner 只在当前位置有效
    • 使用import导包 在类的上面 package信息的下面 一个java文件中所有类中有效
    • *模糊导入 模糊匹配当前包下的所有类 会降低编译效率 不会降低运行效率
    • 静态导入只导入静态内容 import static
      • import static java.lang.Math.PI; (3.1415926……)
      • import static java.lang.Math.round; (四舍五入)
  • 不需要导包的类 :
    • java.lang
    • 同包下的类
范例:
package com;

import java.util.Random;
import java.util.Scanner;
//这两个就可以实现模糊导包 import java.util.*
import static java.lang.Math.PI;
import static java.lang.Math.round;

public class Test {
    public static void main(String[] args) {
        //权限定名
        java.util.Scanner sc=new java.util.Scanner(System.in);
        Scanner sa=new Scanner(System.in);
        Random sb=new Random();

        //静态变量
        System.out.println(PI);
        System.out.println(PI);
        System.out.println(PI);

        System.out.println(round(3.5));
        System.out.println(round(4.5));

        //静态方法
        System.out.println();
    }
}

class Demo{
    public static void main(String[] args) {
        //权限定名
        java.util.Scanner sc=new java.util.Scanner(System.in);
        Scanner sa=new Scanner(System.in); // 同一个包中就可以不在导包
        Random sb=new Random();
    }
}

4.11 Private 关键字

public修饰的内容可能存在安全隐患问题:

属性赋值 值可能出现符合类型范围要求但是不符合业务要求的数据

private 私有的

被private关键字修饰的内容只能在本类中使用 其他类中无法使用

私有属性需要配合提供一对公共的访问方式 ===>方法 因为在方法中可以做逻辑判断

  • 设置器 setter :为私有属性设置值
  • 访问器 getter :获取私有属性

注意:

定义实体类时属性都需要私有化 并且提供一对公共的访问方式

public class T {
    private String name;
    private int age;

    public void setName(String name){
        this.name=name;
    }

    public String getName(){
        return name;
    }

    public void setAge(int age){
        this.age=age;
    }

    public int getAge(){
        return age;
    }

    public void show(){
        System.out.println(name+"===>"+age);
    }
}

public class TDemo {
    public static void main(String[] args) {
        T sc=new T();
        sc.setAge(18);
        sc.setName("汪超");
        sc.show();
        System.out.println(sc.getAge()+","+sc.getName());
    }
}

5.12 封装

隐藏内部的实现细节 对外提供公共的访问方式

优点:

  • 提高程序的安全性
  • 提高代码的复用性

私有是封装 √

封装是私有 ×

方法、类、属性的私有化……都是封装的体现

5.13 继承

**继承:**子继父业

  • **目的:**提高代码的复用性
  • **作用:**子类一旦继承了父类 有权使用父类的成员 可以在子类中定义子类独有的内容
  • **定义:**子类 extends 父类

**实体类|子类:**根据一系列对象抽取共性所定义的实体类

**父类:**子类的共性

子类|派生类

父类|基类|超类

特点:

  • 单继承机制 一个子类只能继承一个父类 但是一个父类可以存在多个子类
  • 修饰符只能使用public | default(默认) 修饰
  • 开闭原则===>面向对象设计原则之一:对修改关闭 对扩展开放

**单继承的优点:**简单

**单继承的缺点:**不便于后期维护

class Person {
    String name;
    int age;

    public void sleep(){
        System.out.println("好好休息!!!");
    }
}


class Student extends Person {
    String id;

    public void study(){
        System.out.println(name+"好好学习!!!");
    }
}

class Teacher extends Person {
    String subject;

    public void teacher(){
        System.out.println(name+"教书育人!!!");
    }
}

public class Demo {
    public static void main(String[] args) {
        Student sc=new Student();
        sc.name="汪超";
        sc.age=18;
        sc.study();
        sc.sleep();

        Teacher ss=new Teacher();
        ss.name="胡歌";
        ss.age=39;
        ss.teacher();
        ss.sleep();
    }
}

5.14 访问权限修饰符

权限修饰符本类同包类不同包下的子类不同包下的其他类
private 私有的√
default 默认的√√
protected 受保护的√√√
public 公共的√√√√

注意:

  • 都是成员修饰符 只能修饰成员 不能修饰局部
  • protected修饰的成员在不同包下的子类中 需要通过继承关系使用 使用子类对象
  • 常见的两种权限:public | private
  • 父类中私有的成员 子类不能用 (如:父亲的私房钱儿子不可以使用)
package wang01;

public class Modifier {
    public String testPublic="public";
    protected String testProtested="protected";
    String testDefault ="default";
    private String testPrivate="private";

    public static void main(String[] args) {
        //测试本类中使用
        Modifier sc=new Modifier();
        System.out.println(sc.testPublic);
        System.out.println(sc.testProtested);
        System.out.println(sc.testDefault);
        System.out.println(sc.testPrivate);
    }

    //测试本类中使用
    public void test() {
        System.out.println(testPublic);
        System.out.println(testProtested);
        System.out.println(testDefault);
        System.out.println(testPrivate);
    }
}

//同包类
class Demo{
    public static void main(String[] args) {
        Modifier sc=new Modifier();
        System.out.println(sc.testPublic);
        System.out.println(sc.testProtested);
        System.out.println(sc.testDefault);
        // System.out.println(sc.testPrivate);
    }
}

package wang;

import wang01.Modifier;

//不同包下的子类
public class Modifier01 extends Modifier {
    public void test() {
        System.out.println(testPublic);
        System.out.println(testProtested);
//        System.out.println(testDefault);
//        System.out.println(testPrivate);
    }

    public static void main(String[] args) {
        //父类对象访问
        Modifier sc=new Modifier();
        System.out.println(sc.testPublic);
        //在不同包下的子类中 需要通过继承关系使用
//        System.out.println(sc.testProtested);
//        System.out.println(sc.testDefault);
//        System.out.println(sc.testPrivate);

        //子类对象访问
        Modifier01 ss=new Modifier01();
        System.out.println(ss.testPublic);
        System.out.println(ss.testProtested);
//        System.out.println(ss.testDefault);
//        System.out.println(ss.testPrivate);
    }
}

package wang;

import wang01.Modifier;

//不同包下的其他类
public class Others {
    public static void main(String[] args) {
        Modifier sc=new Modifier();
        System.out.println(sc.testPublic);
//        System.out.println(sc.testProtested);
//        System.out.println(sc.testDefault);
//        System.out.println(sc.testPrivate);
    }
}

5.15 Super 关键字

super与this 之间的区别:

  • this指代当前new对象

    • 本类构造器的首行调用本类中的其他构造器this(参数列表)

    • 区分局部与成员同名问题

      • 默认就近原则

      • 通过this.调用成员

  • super指代父类对象

    • 子类构造器的首行 通过super(参数)调用父类中的指定构造器
      • 如果没有显示通过super(参数)调用 默认调用父类的空构造
    • 区分子父类中同名成员
  • 如果不存在同名问题:可以省略super.调用父类成员

    • 如果存在子父类同名成员问题,同名局部问题:|

      • 默认就近原则

      • 有局部找局部

      • 通过this.找子类成员

      • 通过super.找父类成员

注意:

  • 子父类继承关系下 创建子类对象的时候 其实会先父类后子类
  • 不能在构造器的首行同时使用this(参数)与super(参数)
  • this与super都不能使用在静态方法中
package wang01;

public class TestSuper {
    public static void main(String[] args) {
        Zi sc=new Zi();
    }
}

class Fu{
    String str="ddd";
    public Fu(){
        System.out.println("Fu");
    }
    public Fu(int i){
        System.out.println("fufu");
    }
}

class Zi extends Fu{
    String str="fff";
    public Zi(){
        super(10);
        System.out.println("Zi");
        System.out.println(super.str);
    }
    public Zi(String s){
        System.out.println("zizi");
    }
}
NVIDIA Omniverse 技术浅析(二):USD 例如,一个用户可以负责场景的几何体设计,另一个用户可以负责材质和灯光的调整。USD 的开放性和可扩展性,结合 Omniverse 的 Kit 扩展框架,使得用户和开发者可以创建自定义的应用程序和工具,以满足特定的需求。USD 的材质和物理属性系统,结合 Omniverse 的 RTX 实时渲染技术,使得用户可以在虚拟环境中看到逼真的光影效果和物理模拟。USD 的时间轴和动画功能,结合 Omniverse 的物理属性系统,使得用户可以为虚拟环境中的元素创建复杂的动画和物理模拟。 阅读详情

相关推荐

核回归(Kernel Regression)

本文讲解了核函数,并且实战通过核函数进行了预测,并附python代码

a2333333_的博客 6956

java的util包在jdk哪_JAVA核心包之java.util工具包

学习目的了解JDK提供java开发框架、JRE环境了解java开发的常用包,及其作用学会查看每一个java包的底层源码实现掌握java.util工具包的常用接口和类,以及常用的方法java常见包包名解释备注java.util常用工具类包java.lang程序设计基础类包java核心类包java.text文本格式包用于格式化和分析类,整理字符串类java.io输入、输出接口包文件传输包java.sq...

weixin_39740346的博客 2829

【校园网代理连接问题】已解决,“该设备或资源(Web 代理)未设置为接受端口“7890”上的连接“

我遇到这个问题很多次。每次都是vpn的问题,不止通俗意义上的梯子(clash之类的),还包括校园网vpn。点击“ 拨号和虚拟专用网络设置”中的“设置”, 关闭代理服务器。在打开vpn后或者关闭vpn后无法浏览网页,网页诊断显示“关闭“手动设置代理”中的“使用代理服务器”,关闭对应的本地代理即可。

聆雨。 1万+

JAVA教程 从入门到精通 Day15

JAVA基础

dlogcs的博客 376

LaTeX双栏浮动结构实战:用dblfloatfix解决跨栏图表排版难题

本文深入探讨了LaTeX双栏浮动结构在学术论文排版中的常见问题,特别是IEEE会议论文中的跨栏图表定位难题。通过介绍dblfloatfix包的整合解决方案,帮助用户实现精准的底部定位和浮动顺序保持,提升排版效率与质量。

weixin_30872499的博客 443

Windows下Codex CLI binary报错排查与修复完整指南

在Windows开发环境中,命令行工具与图形界面应用的协同工作常常依赖于系统环境变量的正确配置。Codex CLI作为一款基于Node.js的智能编程命令行工具,其可执行文件(binary)的定位机制直接关系到桌面应用的正常启动。当用户执行npm更新或切换Node版本后,Codex CLI二进制文件路径可能发生漂移,从而触发“Unable to locate the Codex CLI binary”的报错。此类问题并非代码或账号异常,而是PATH路径、环境变量刷新及桌面应用缓存共同作用的结果。本文面向Wi

weixin_28718769的博客 305

JAVA教程 从入门到精通 Day 3

JAVA 基础

dlogcs的博客 377

Selenium ChromeDriver反爬与性能优化实战指南

ChromeDriver作为Selenium的核心驱动,本质是浏览器自动化执行引擎,其默认行为会暴露大量JS运行时指纹(如navigator.webdriver、window.chrome),极易被前端反爬系统识别;同时因进程管理粗放、渲染等待机制僵化,导致内存泄漏、僵尸进程和高并发下稳定性崩塌。本文围绕真实生产场景,系统解析浏览器指纹伪造原理、进程级资源管控策略、基于页面状态的智能等待范式,并提供Docker容器化、K8s弹性扩缩与Prometheus可观测性落地路径,助力开发者将ChromeDriver

weixin_29762151的博客 1259

Java入门到精通 day2

Java入门到精通 day2 关键字 数据类型: 基本数据类型 1.1 整数型 byte short int long 1.2 浮点型 float double 1.3 布尔型 boolean 1.4 字符型 char 引用数据类型 2.1 类 接口 数组 定义的注意事项: 默认整数类型为int型,需要注意定义时各数据类型的范围,从大范围定义到小范围可能会精度丢失导致出错.可以使用强转 强转:目标类型 变量名 = (目标类型)常量值或者变量值 标识符 自定义的 类名 接口名 方法名 1.1 类名:采

weixin_44850324的博客 135

powerdesigner导出sql将name放到comment注释上

【代码】powerdesigner导出sql将name放到comment注释上。

weixin_45947759的博客 1352

2篇1章1节:数据的基本概念以及 R 中的数据结构、向量与矩阵的创建及运算

本文详细介绍了R语言中常见的数据结构的向量和矩阵。通过掌握这些数据结构的基本概念和操作技巧,可以更高效地处理和分析数据。

MD Code 1243

Jmeter入门到精通教程

21天Jmeter打卡day15 配置元件之用户定义的变量+抽离公共数据添加配置元件,用户定义的变量把协议和请求设置为用户自定义变量设置引用执行请求,读取变量成功。

seanyang_的博客 1万+

大模型新闻摘要生成质量评估工具

大模型新闻摘要生成质量评估工具 关键词:大模型、新闻摘要、质量评估、自然语言处理、算法 摘要:本文将探讨大模型新闻摘要生成质量评估工具的设计与应用。首先介绍大模型新闻摘要生成的背景和问题,然后深入分析质量评估的难点和重要性,接着介绍大模型的

AI天才研究院 828

【Java基础】DAY9

DAY9DAY91、继承的概述2、继承的格式3、继承中成员变量的访问特点4、区分子类方法中重名的三种变量5、继承中成员方法的访问特点6、继承中方法的覆盖重写 概念与特点7、继承中方法的覆盖重写 注意事项8、继承中方法的覆盖重写 应用场景9、继承中构造方法的访问特点10、super关键字的三种用法11、this关键字的三种用法12、super与this关键字图解13、Java继承的三个特点14、抽象...

Memory的博客 399

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

day01-Java入门

就是在windows操作系统中,利用命令行的方式去操作计算机。我们可以利用cmd命令去操作计算机,比如:打开文件,打开文件夹,创建文件夹等。语言:人与人交流沟通的表达方式计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言Java是一门非常火的计算机语言。(也叫做编程语言)我们想要让计算机做一些事情,那么就可以通过Java语言告诉计算机就可以了目录名称说明bin该路径下存放了JDK的各种工具命令。javac和java就放在这个目录。conf该路径下存放了JDK的相关配置文件。

qq_63763836的博客 1146

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

JAVA教程 从入门到精通 Day16

JAVA基础

dlogcs的博客 221

49天精通Java(Day 9):抽象类与接口

接口(Interface)是比抽象类更加抽象的结构,它只定义方法的签名(没有方法体)和常量(默认是),没有任何具体实现。接口用于定义类必须实现的行为,但不提供任何实现细节。Java中的接口通过interface关键字定义,类通过implements关键字实现接口。一个类可以实现多个接口,从而实现多重继承的效果。// 接口方法(隐式为public abstract)

**My Coding Family** 960

JAVA教程 从入门到精通 Day13

JAVA基础

dlogcs的博客 164

Day01Java入门

只有一步一个脚印,踏踏实实学习,才能从零基础到入门,再到精通。

qq_50642393的博客 1197

JAVA教程 从入门到精通 Day5

JAVA基础

dlogcs的博客 291

python零基础入门到精通,python零基础入门教程

编程语言编程语言的本质:'语言',语言的本质是沟通交流的工具自然语言(汉语,日语,汉语)-->人和人之间进行沟通交流的工具编程语言(python,Java,c)-->人和计算机之间进行沟通交流的工具说人话:程序员用一种电脑能理解的方式,和它沟通,下达指令代码/指令:人类饿了,就会说'我饿了' 表达自己想吃饭现在说了句'了我饿',好像听不太懂,似懂非懂,帮你自动扳回来,能勉强看懂,但是计算机不能-->电脑很蠢,是不能自动优化错误,所以我们的语法要正确。

2301_81837718的博客 1153

「49天精通Java」专栏导读 (已完结)

🏆本文收录于「49天精通Java」专栏,专业攻坚指数级提升持续更新中,up!up!up!!欢迎点赞&&收藏&&订阅。

**My Coding Family** 1万+

【JAVA入门】Day33 - Collections

以下代码演示了如何创建集合并批量添加数据,然后打乱集合元素顺序,然后用二分法查找方法查找了另一个集合中的数据。Collections 是集合的工具类。其包含的方法如下表所示,其中前两个方法最为常用。

oo00Z00oo的博客 351

Java程序设计day1、day2

JAVA入门到起飞!黑马程序员Java零基础最速上手之day1、day2详细笔记。

m0_59302403的博客 934

JAVA教程 从入门到精通 Day8

JAVA 基础

dlogcs的博客 274

JAVA学习-Day1

java学习记录

weixin_43832912的博客 125
上一篇: JAVA教程 从入门到精通 Day8
下一篇: JAVA教程 从入门到精通 Day10
dlogcs
博客等级 码龄7年 0粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值