当前位置: 首页 > news >正文

织梦网站怎么安装/seo基础课程

织梦网站怎么安装,seo基础课程,有字体设计网站,wordpress 十万三个修饰符三个修饰符一、abstract1.1 修饰类1.2 修饰方法二、final2.1 修饰类2.2 修饰方法2.3 修饰变量2.3.1 修饰属性2.3.2 修饰局部变量2.3.3 修饰方法的参数2.3.4 常量三、static关键字3.1 修饰属性3.2 修饰方法3.3 修饰代码块3.4 继承时的执行顺序三个修饰符 一、abstrac…

三个修饰符

      • 三个修饰符
        • 一、abstract
          • 1.1 修饰类
          • 1.2 修饰方法
        • 二、final
          • 2.1 修饰类
          • 2.2 修饰方法
          • 2.3 修饰变量
            • 2.3.1 修饰属性
            • 2.3.2 修饰局部变量
            • 2.3.3 修饰方法的参数
            • 2.3.4 常量
        • 三、static关键字
          • 3.1 修饰属性
          • 3.2 修饰方法
          • 3.3 修饰代码块
          • 3.4 继承时的执行顺序

三个修饰符

一、abstract

abstract,抽象的。

1.1 修饰类

有的类是抽象出来的概念,只能作为父类存在,而不应该直接创建对象,此时,可以在类上加上abstract关键,设置该类为抽象类,不能直接创建对象,只能作为父类。

public abstract class Animal {private String name;public void eat() {System.out.println("动物在吃...");}
}
public class Demo1 {public static void main(String[] args) {// Animal a = new Animal(); // 报错,不能直接创建对象Animal a = new Dog(); // 使用子类创建对象}
}
1.2 修饰方法

在父类中,可能存在一些方法,必须要在子类中重写,那么可以在该方法前面加上abstract关键字,指定该方法在子类中应该重写。

public abstract class Animal {private String name;// 只需要方法的声明,不需要实现,所以没有大括号,直接使用分号结束public abstract void eat();
}
public class Dog extends Animal{@Overridepublic void eat() {System.out.println("狗在吃...");}
}

注意:

  • 一个抽象类中可以没有抽象方法
  • 有抽象方法的类必然是抽象类
  • 抽象方法不能使用private,没有意义
  • 当子类继承一个有抽象方法的抽象类时,会报错。此时有两种解决方案:
    • 将子类也设置为抽象类
    • 实现(重写)父类中所有的抽象方法

二、final

final,最终的,最后的,终结的,不可更改的。

2.1 修饰类

表示该类不能被继承。

注意:final不能和abstract一起使用。

2.2 修饰方法

表示该方法不能被重写。

2.3 修饰变量

表示该变量一旦赋值,不能改变,称为常量。

2.3.1 修饰属性

该属性必须在创建对象后,要有值。赋值的时机:

  • 直接在属性定义时赋值

    public class Dog{private final String name = "";
    }
    
  • 在代码块中赋值

    public class Dog{private final String name;{name = "";}
    }
    
  • 在构造方法中赋值

    public class Dog{private final String name;public Dog() {this.name = "";}public Dog(String name) {this.name = name;}
    }
    

    注意:不能再次赋值,所以当在代码块中赋值后,不能在构造方法中赋值,因为代码块在构造方法前执行。

2.3.2 修饰局部变量
public class Dog extends Animal{public void m1() {// 先声明,后赋值final int n; n = 6;// n = 5; 会报错,不能重复赋值// 声明的同时赋值final int m = 3;}
}
2.3.3 修饰方法的参数
public class Dog extends Animal{public void m2(final int n) {
//		n = 5; 会报错, 表示该值不能修改}
}
2.3.4 常量

在类中一般会定义一些变量,声明为final修饰,视作常量。

在项目中,固定使用的一些常数,不希望在使用过程中被改变,会定义成常量。

常量定义的规范:单词全大写,多个单词使用下划线隔开。

// Integer类中的整数最大值:
public static final int   MAX_VALUE = 0x7fffffff;
// Math类中的PI的值:
public static final double PI = 3.14159265358979323846;

三、static关键字

3.1 修饰属性

表示该属性为静态属性,也叫类属性。

同一个类共享同一个类型属性空间,也可以使用对象操作。但是不推荐。应该使用类名访问。

创建的对象在堆中,而类属性在方法区。

注意:不能修饰局部变量。不需要创建对象就可以使用类属性。

public class Student {public String name;public int age;public static String className;public void introduce() {
//		static int n = 5; // 报错,不能修饰局部变量System.out.println(className);}
}
public class Demo1 {public static void main(String[] args) {Student s1 = new Student();s1.name = "张三";s1.age = 20;s1.className = "0班"; // 可以操作,但是不推荐Student.className = "1班"; // 静态属性,类属性Student s2 = new Student();s2.name = "李四";s2.age = 18;Student.className = "2班";System.out.println(s1.name + "," + s1.age + "," + Student.className + "---" + s2.name + "," + s2.age + "," + Student.className);}
}

在实例方法中是否可以调用静态属性?

  • 可以,因为静态属性不需要创建对象就可以访问。创建了对象也可以访问。
3.2 修饰方法

表示该方法为静态方法(类方法)。

即直接使用类名调用的方法,不需要创建对象即可调用。

public class Student {public String name;public int age;public static String className;public static int count = 0;public Student() {count++;System.out.println("对象被创建了"+count+"次");}public void introduce() {
//		static int n = 5; // 报错,不能修饰局部变量System.out.println(className);}// 静态方法,类方法public static void m1() {System.out.println("m1===被调用");}
}

注意:

  • 静态方法不需要创建对象即可使用,直接用类名访问。
  • 在静态方法中可以调用其他静态方法,但是不能调用非静态方法(实例方法)。
  • 静态方法中可以调用静态属性,但是不能调用非静态属性(实例属性)。
  • 静态方法中不能使用this和super。
  • 静态方法可以继承,不能重写,没有多态。
3.3 修饰代码块

动态代码块:在类中直接使用一对大括号中的代码。创建对象时执行。

执行顺序:

  • 初始化属性
  • 执行动态代码块
  • 执行构造方法
public class A {public String name = "aaa";{System.out.println(name);System.out.println("动态代码块");}public A() {System.out.println("构造方法");}
}public class Demo2 {public static void main(String[] args) {new A();}
}

静态代码块:使用static修饰的代码块叫静态代码块。类加载时执行。而且只执行一次。

创建对象时会先加载类。

加载类:将类的信息加载到内存中的方法区,以便得到对象所需的空间大小,方便创建对象。

执行顺序:

  • 静态属性初始化(仅一次)
  • 静态代码块(仅一次)
  • 实例属性
  • 动态代码块
  • 构造方法
public class A {public static String sname = "静态属性";public String name = "实例属性";{System.out.println(name);System.out.println("动态代码块");}public A() {System.out.println("构造方法");}static {System.out.println(sname);
//		System.out.println(name); // 不能访问实例属性System.out.println("静态代码块");}
}public class Demo2 {public static void main(String[] args) throws ClassNotFoundException {
//		new A();// 加载类
//		Class.forName("com.qf.day13.A");new A(); // 会先加载类
//		new A();}
}
3.4 继承时的执行顺序

经典面试题:执行顺序:

父类静态属性(仅一次)
父类静态代码块(仅一次)
子类静态属性(仅一次)
子类静态代码块(仅一次)

父类实例属性
父类动态代码块
父类构造方法
子类实例属性
子类动态代码块
子类构造方法

public class A {public static String sname = "父类静态属性";public String name = "父类实例属性";{System.out.println(name);System.out.println("父类动态代码块");}public A() {System.out.println("父类构造方法");}static {System.out.println(sname);System.out.println("父类静态代码块");}
}public class B extends A{public static String sname1 = "子类静态属性";public String name1 = "子类实例属性";{System.out.println(name1);System.out.println("子类动态代码块");}public B() {System.out.println("子类构造方法");}static {System.out.println(sname1);System.out.println("子类静态代码块");}
}public class Demo2 {public static void main(String[] args){new B();}
}

相关文章:

三个修饰符

三个修饰符三个修饰符一、abstract1.1 修饰类1.2 修饰方法二、final2.1 修饰类2.2 修饰方法2.3 修饰变量2.3.1 修饰属性2.3.2 修饰局部变量2.3.3 修饰方法的参数2.3.4 常量三、static关键字3.1 修饰属性3.2 修饰方法3.3 修饰代码块3.4 继承时的执行顺序三个修饰符 一、abstrac…...

JVM调优面试题——参数命令专题

文章目录1、JVM参数有哪些?1.1、 标准参数1.2、-X参数1.3、 -XX参数1.4、 其他参数1.5、 查看参数1.6、 设置参数的常见方式1.7、 常用参数含义2、JVM常用命令有哪些?2.1、jps2.2、jinfo2.3、jstat2.4、jstack2.5、jmap3、你会估算GC频率吗?4、 内存溢出…...

单例模式(设计模式详解)

单例模式 描述 单例模式是一种创建型模式,它的目的是确保一个类只有一个实例,并提供全局访问点。这个实例可以被多个客户端共享,从而避免创建多个实例所带来的资源浪费和不必要的复杂性。 实现 懒汉模式 public class LasySingleton {priv…...

设计一份关于文化遗产视频的调查问卷

参考文献:[1]任洁. 重庆美食类短视频传播策略研究[D].重庆交通大学,2021.DOI:10.27671/d.cnki.gcjtc.2021.000699.📰1 设计背景现已制作一些关于文化遗产的时长4-5分钟的视频,需要面向在校大学生收集他们对视频的看法从而分析视频的传播效果&…...

Linux内核移植

内核移植半导体厂商会从linux内核官网下载某个版本,将其移植到自己的CPU上,测试成功后就会将其开放给该半导体的厂商的CPU开发者,开发者下载其提供的linux内核,然后将其移植到自己的 产品上。1、NXP官方开发板Linux内核编译测试编…...

忆享科技优化入职培训加强人效管理全面迎接新挑战

-优化入职培训-忆享科技加强人效管理入职培训课程 ✦ KPI系统上线 ✦ 砥砺前行前言许多企业随着自身的不断发展,对于各类人才引进需求也越来越迫切,一批批新员工的加入,公司规模逐渐扩大,给公司带来了全新的血液。但在大量新员工加…...

Spring——注解开发依赖注入和管理第三方bean

自动装配(引用类型) 环境准备: 文件结构如下图所示,Dao层的实现类里面有一个save方法,Service层里面的实现类有一个BookDao的声明和一个set方法,同时也有一个save方法,配置类的扫描范围如图所示 在当前的一个测试类当…...

shell可能考你但是不常用的基础($篇)

前言 当你面试的时候,可能要说的架构什么都准备好了,也说的七七八八,结果到最后问了一些基础的问题答不上来或者没想起来就很容易造成社会性死亡,一个没答上来道心被破,后面就更容易懵逼了 通常造成这个问题的原因是写…...

项目管理必备:如何绘制一份优秀的甘特图?

本文一共分为两部分—— 分享60Excel甘特图模板,简单省事儿分享两种甘特图制作教程,高效快捷 第一部分——60甘特图模板 分享一些项目管理甘特图的模板,省事儿!高效!简单! Excel甘特图表模板自取&#xf…...

【点云学习】多时相激光雷达点云

多时相雷达数据(multi-tempral LiDAR data) 1 一种多时相激光雷达数据建筑物变化检测方法-汪承义(2013) 背景:空间分辨率的提高引入了“类内可分性”增加与“类间可分性”降低;遮挡与阴影的存在使问题变得…...

使用QT C++编写一个随机生成网络ip地址的程序

根据网络搜索结果&#xff0c;使用QT C编写一个随机生成网络ip地址的程序的示例代码可能如下&#xff1a; cpp #include <QCoreApplication> #include <QRandomGenerator> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(a…...

Web前端学习:章三 -- JavaScript预热(三)

六九&#xff1a;函数的变量提升 函数的变量提升没有var高&#xff0c;var是最高的。 先提var&#xff0c;再提函数 解析&#xff1a; 1、4行打印之前没有定义变量&#xff0c;预解析触发变量提升 2、先提var&#xff0c;再提函数。所以先把var提升到最上面&#xff0c;然后提…...

java实用小技巧:判断list是否有重复项

在项目中经常会遇到这样的场景&#xff0c;就是一个list&#xff0c;根据某种规则&#xff0c;我要去判断里面是不是有重复的项。 难度不高&#xff0c;但有点烦&#xff0c;所以专门开一篇文章来记录一下&#xff0c;争取弄一个相对简洁的写法。 先看一个简单的例子&#xf…...

SQL优化常用招数(上)

文章目录 一、查询SQL尽量不要使用select *,而是具体字段二、避免在where子句中使用 or 来连接条件三、尽量使用数值替代字符串类型四、使用varchar代替char五、技术延伸,char与varchar2的区别?六、where中使用默认值代替null七、避免在where子句中使用!=或<>操作符八…...

C++并发之探索编程三

文章目录1. 等待事件或等待其他条件1.1 凭借条件变量等待条件成立1.1.1 std::condition_variable1.1.2 std::condition_variable_any1.1.3 std::condition_variable和std::condition_variable_any之间的区别上个章节我们讨论了如何对共享数据的一个保护&#xff0c;通过std::lo…...

某智能驾驶企业:CACTER云网关为O365系统护航

01 客户背景 某智能驾驶企业是一家国际性的高科技创新型企业&#xff0c;在智能驾驶领域处于全球领先地位&#xff0c;专注于为广大客户提供个性化的智能驾驶解决方案&#xff0c;共建美好智能新时代。 使用产品&#xff1a;CACTER邮件安全云网关 02 痛点难点问题 根据Corema…...

网络安全与信息安全的主要区别讲解-行云管家

生活中工作中&#xff0c;我们经常可以听到信息安全与网络安全这两个词语&#xff0c;但很多小伙伴对于两者区分不清楚&#xff0c;今天我们小编就给大家来简单讲解一下这两者的主要区别吧&#xff01; 网络安全与信息安全的主要区别讲解 1、定义不同 网络安全是指网络系统的…...

Zabbix6.2利用模板和自定义监控项监控华为AR3260路由器

1&#xff1a;登录路由器的WEB管理控制台。在系统管理中找到SNMP然后开启SNMP代理&#xff0c;SNMP的版本可以只选择v2c都选择也无所谓&#xff0c;然后点击新建一个团体。 2&#xff1a;团体名称输入默认的public即可&#xff0c;在WEB端显示的是乱码&#xff0c;但是不影响使…...

MySQL Connector/C++使用过程中的问题

Linux环境下&#xff0c;使用mysql connector cpp的时候&#xff0c;链接的时候报错&#xff1a; /usr/bin/ld: warning: libssl.so.10, needed by /usr/lib64/libssh2.so.1, may conflict with libssl.so.1.1 /usr/bin/ld: ext/openssl/.libs/xp_ssl.o: undefined reference …...

SpringBoot下的Spring——DAY04——动态代理总结、AOP、自定义注解进行拦截、动态获取注解参数、通知方法(内含源代码)

SpringBoot下的Spring——DAY04——动态代理总结、AOP、自定义注解进行拦截、动态获取注解参数、通知方法&#xff08;内含源代码&#xff09; 源代码下载链接地址&#xff1a;https://download.csdn.net/download/weixin_46411355/87549575 目录SpringBoot下的Spring——DAY0…...

Spark MLlib概述

Spark MLlib概述机器学习房价预测模型选型数据探索数据提取准备训练样本模型训练模型效果评估机器学习 机器学习的过程 : 基于历史数据&#xff0c;机器会根据一定的算法&#xff0c;尝试从历史数据中挖掘并捕捉出一般规律再把找到的规律应用到新产生的数据中&#xff0c;从而…...

Git 命令行5步解决冲突方法(亲测有效)

总体步骤如下&#xff1a; git pull --rebase 解决冲突文件 file1.c。git add file1.cgit commit -m "*****" git pushgit rebase --continue &#xff0c;此时冲突消失强推&#xff0c;git push origin xxxx -f 本人解决的例子如下&#xff1a; 第一步、拉取…...

在线帮助文档——让用户更方便地获取帮助

在当今互联网时代&#xff0c;人们在使用各种产品或服务时&#xff0c;难免会遇到问题或疑问&#xff0c;需要寻求帮助。而在线帮助文档则成为了一种方便、快捷、高效的解决问题的方式。Baklib作为一款优雅的云知识库构建平台&#xff0c;可以帮助公司在线制作各种类型的帮助文…...

一小时轻松掌握Git,看这一篇就足够

文章目录序言&#xff1a;版本控制分类一、Git环境配置下载卸载安装二、常用linux命令三、基本配置四、Git基本操作0.原理图1.项目创建及克隆方式一&#xff1a;本地仓库搭建方式二&#xff1a;克隆远程仓库2.文件操作3.配置ssh公钥4.分支5.push代码参考序言&#xff1a;版本控…...

spring cloud stream 自定义binder

背景xxx,关键字 binder stream &#xff0c;解决多中间件通信及切换问题直接主菜&#xff1a;spring cloud stream 架构中间件 --- binder --- channel --- sink --- &#xff08;处理&#xff09;---source ---channel ---binder ---中间件 springcloudstream已自己集成了kafk…...

计算机网络之HTTP协议

目录 一、HTTP的含义 1.1 理解超文本 1.2 理解应用层协议 1.3 理解HTTP协议的工作过程 二、HTTP协议格式 2.1 抓包工具的使用 2.2 理解协议格式 2.2.1 请求协议格式 2.2.2. 响应格式请求 一、HTTP的含义 HTTP&#xff08;全称为“超文本传输协议”&#xff09;&#x…...

如何挖掘专利创新点?

“无意中发现了一个巨牛的人工智能教程&#xff0c;忍不住分享一下给大家。教程不仅是零基础&#xff0c;通俗易懂&#xff0c;而且非常风趣幽默&#xff0c;像看小说一样&#xff01;觉得太牛了&#xff0c;所以分享给大家。点这里可以跳转到教程。” 对于广大的软件工程师来说…...

虚函数和纯虚函数

多态&#xff08;polymorphism&#xff09;是面向对象编程语言的一大特点&#xff0c;而虚函数是实现多态的机制。其核心理念就是通过基类访问派生类定义的函数。多态性使得程序调用的函数是在运行时动态确定的&#xff0c;而不是在编译时静态确定的。使用一个基类类型的指针或…...

Framework源码面试——Handler与事件传递机制面试集合

Handler面试题 Handler的作用&#xff1a; 当我们需要在子线程处理耗时的操作&#xff08;例如访问网络&#xff0c;数据库的操作&#xff09;&#xff0c;而当耗时的操作完成后&#xff0c;需要更新UI&#xff0c;这就需要使用Handler来处理&#xff0c;因为子线程不能做更新…...

iOS开发-bugly符号表自动上传发布自动化shell

这里介绍的是通过build得到的app文件和dSYM文件来打包分发和符号表上传。 通过Archive方式打包和获得符号表的方式以后再说。 一&#xff1a;bugly工具jar包准备 bugly符号表工具下载地址&#xff1a;(下载完成后放入项目目录下&#xff0c;如不想加入git可通过gitIgnore忽略…...