java基础课程笔记 static 主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

时间:2021-08-15 14:51:12

Static那些事儿

Static关键字

被static修饰的变量成为静态变量(类变量)

作用:是一个修饰符,用于修饰成员(成员变量,成员方法)

1、被static修饰后的成员变量只有一份

2、当成员被static修饰之后,多了一种访问方式,除了可以被对象调用之外还可以被雷鸣直接调用(类名.静态成员)

static关键字,修饰变量,只保存最后一个值,立即改,立即用。

static关键字是一个修饰符说白了意思就是用static修饰成员以后,这个成员就变成大家共有的了 ,任意一个对象可以调用它并且也可以修改它的值 比如static String name= 王二, 那么这个name类变量 本类中所有对象都可以调用它,也可以修改它

Static的特点:

1、随着类的加载而被加载

2、优先与对象的存在

3、被所有的对象所共享的

4、可以直接被类名所调用

存放位置:

类变量是随着类的加载而存在于data内存区

实例变量随着对象的建立而村子啊与堆内存

生命周期:

1、类变量生命周期最长,随着类的消失而消失

2、实例变量生命周期比类变量

静态方法注意事项:

1、静态的方法只能防卫静态的成员

2、非静态的方法既能访问静态的成员(成员变量,成员方法)也能防卫非静态的成员

3、静态的方法中事不可以定义this super关键字的,因为惊天优先于对象存在,所以静态方法不可以出现this,局部变量事不能被statit修饰的

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

什么时候使用静态:

Static所修饰的内容是成员(成员变量,成员方法)

从两方面入手:

什么时候使用静态的成员变量:

当属于同一个类的所以对象出现共享数据时,需要将存储这个共享数据的成员变量用static修饰

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

什么时候使用静态方法:

当功能内部没有访问到非静态的成员时(对象特有的数据),该功能可以定义成静态的

主函数(主方法)==36

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

静态工具类==39

每个应用程序都有共性的功能,可以将这些功能进行抽取,独立封装,以使服用

对象的作用:对象是用来封装数据的,只要这个类里面有静态的成员时,那对象就必须存在。

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

Classpath==40

path:主要功能是设置JDK的可执行命令

classpath:主要是在执行的时候起作用,告诉JVM(java虚拟机)的所保存的路径

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

也可以在环境中设置

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

Java文档注释  文档标识符==41

 

用文档注释来建立文档说明

Java自动提供了一个文档说明的提取器 javadoc

利用文档标识符进行注释说明

/**

这里写说明

*/

@param 后边跟上具体的参数名和注释解释说明

@return

@author 作者

@version 版本

以上这些写好之后如何提取?

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

提取步骤:

  1. 打开cmd,进入到java文件的所在目录中
  2. 输入javadoc
  3. java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

如果要提取这个类,就要保证这个类是public公共的

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

3、执行命令后

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

4、打开一个html(建议打开index.html)

静态代码块==42

静态代码块==42

格式:

static{

静态代码块中执行语句

}

特点:随着类的加载而执行,并且只会执行一次,并且还优先于主函数

作用:用于给类进行初始化

对象初始化话过程 == 43

java的内存被分成了几个区:堆 栈 方法区

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

1、因为new Student()用到了Student类,所以会把它从硬盘上加载进入内存

2、如果有static静态代码块就会随着类的加载而执行,还有惊天成员和普通该方法也会随着类的加载而被执行

3、在堆中开辟空间,分配内存地址

4、在堆中建立对象特有属性(非静态属性),并同时对特有属性进行默认初始化

5、对属性进行显示初始化

6、执行构造代码块,对所以对象进行初始化

7、执行对应的构造函数,对对象进行初始化

8、将内存地址给S(给栈中的变量)

设计模式==44

设计模式:起源于建筑,在盖房子中发现有些可寻的规律,然后为了提高盖房子的效率,把这些可寻的规律总结起来,就形成了模式。==后来用在了软件当中

软件中设计模式:针对此类问题最有效的解决方法

Java中一共有23中设计模式====书《设计模式》——是面向思想的,因此理解思想而不是单纯的记录代码

单例设计模式:解决一个类只在内存中存在一个对象

如何让一个类在内存中只存在一个对象?

1、禁止其他的应用程序,通过此类来创建对象

2、既然外部不能通过此类创建对象了,我们要用对象,就可以在本类雷曼创建本类对象。

3、为了其他应用程序能够访问到本类里面创建的对象,我需要对外界提供一种访问方式

如何用代码提现出来:

1、私有化构造方法

2、在本类中创建本类对象

3、得对外界提供访问的方法

继承==45==46

类就是描述现实生活中的事物(分类),而对象才是具体的东西

继承的概述:

1、提高代码复用性,简化代码

2、让类与类之间产生了继承关系,才有后面的多态性的存在

注意:千万不要为了活去其他类的功能简化代码,而建立继承关系

必须要类与类支架存在继承关系,继承关系 is A(谁要是谁)

子类拥有父类的成员,子类不能拥有父类中被private修饰后的成员

Java多层继承 在多层继承中最下层的子类拥有整个继承体系的成员,最上层的父类里面定义所有子类的共性描述

Java中不支持多继承,只支持单继承,因为多继承存在安全隐患,当多个弗雷定义了相同的成员,当子类对象不确定运行哪一个。

Java保留这种机制,并用了另一种方式来体现多实现(接口)

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

父类是将共同的特性抽取出来组成的

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

子父类中的成员变量==47

子父类成员特点:

成员:

1、成员变量

2、函数

3、构造函数

1、变量:

this         代表当前对象的引用

this.变量     首先在本类中找所需要的这个变量,如果没有找到再在父类中找

super        用于访问当前对象的父类成员,

super.变量    直接在父类中找所需变量

(super() 函数是用于调用父类(超类)的一个方法。 super 是用来解决多重继承问题的,)

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

子父类中的函数==48

当子类中出现和父类中一样的函数时,当子类对象调用该函数,

运行的是子类中的函数,如同父类中的函数被覆盖了一样,

这种情况就是函数的另一种特性:重写(覆盖)

注意:

1、子类方法覆盖父类时,必须要保证子类方法权限大于等于父类,才可以覆盖,否则编程出错

访问权限修饰符:public > default > private  成员前面没有加任何访问权限,修饰符默认权限就是default

2、静态的函数只能覆盖静态的

记住:

重载:只看同名的方法的参数列表

重写:子父类中方法要一模一样

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

继承中的构造函数==49

有了子父类之后构造函数的特点:

在对子类对象进行初始化的时候,父类的构造方法也会运行,那时因为子类的构造函数默认第一行有一条隐式的语句 super();

子类每个构造方法第一行都有一个隐式的 super();

对象转型==50

对象的转型:

1、对象的向上转型  子类转成父类 默认进行 父类引用指向子类对象

2、对象的向下转型  父类转成子类  必须强制转型

关键字:instanceof  测试左边的对象是否是右边类的实例

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

多态的概述==51

多态:可以理解为事物存在的多种体现形态

动物:猫 狗 猪

人 男人 女人

1、多态的体现

是父类引用指向子类对象

2、多态的前提

(1)必须得类于类之间存在关系,可以是继承关系 也可以是实现关系(接口中的)

(2)必须得有重写

3、多态的好处

大大提高了程序的可扩展性

4、多态的弊端

提高了程序的可扩展性,但是只能用父类的引用,访问到父类中的成员

多态成员变量的特点:

1、编译期间:参阅的是引用型变量所属的类中是否有调用的方法

2、运行期间:参阅对象所属的类中是否有调用的方法

匿名对象===54

匿名对象:没有名字的对象

匿名对象的使用方法之一:当对对象的方法之调用一次时,我们可以用匿名对象来完成,比较简化

匿名对象的使用方法之二:匿名对象可以被当做实参传递

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

Object类toString()===55

一个特殊的类

Object:它是Java中所有对象的直接或间接的父类,根父类(基类),它里面定义的功能是所有对象都应该具备的

记住:当定义一个新类型时,没有指明要继承某类,它默认继承Object类(这些类要在Java的API中的java.lang包中)

toString()转成字符串

Object类equals()===56

指示其他某个对象是否与此对象“相等”

和==符号其实比较的两对象的内存地址是否一

 

final关键字==57

final(最终)是一个修饰符

1、final可以修饰类、函数、变量(成员变量,局部变量)

2、被final修饰后的类不可以被其他类继承

3、被final修饰后的函数不可以被重写

4、被final修饰后的变量不允许被再次赋值,final在对变量进行修饰时一定要赋值,被final修饰后的变量我们称它常量

5、被public final static多个修饰符修饰的变量称为全局常量

注意:常量的命名规范:字母全部要大写,如果这个名字是由多个单词组成,就在单词之间用_隔开

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

抽象类==58==59

abstract:是一个修饰符

可以修饰方法、类

1、当我们多个类存在相同的功能,但是功能的主体不同,这时我进行向上抽取只能抽取功能的定义不抽取功能的主体

抽象类的特点:

1、抽象方法一定在抽象类中

2、抽象类和抽象方法必须要被abstract关键字修饰

3、抽象的类是不能被创建对象的,因为调用抽象的方法没有意义

4、抽象类中的方法要被使用,必须有子类重写抽象类中的方法,然后创建子类对象来调用

5、抽象类中可以定义非抽象的方法,有时我们需要此类不能被new关键字创建对象时,可以用abstract将此类变成抽象类

6、子类如果只重写一部分的抽象方法,那么盖子类还是一个抽象类,若果抽象类的方法要被使用,子类必须重写抽象类中的所有方法

值得注意:抽象类和普通类没有太大区别

1、抽象类无法通过new关键字创建对象

2、抽象类里面可以有抽象的方法

3、

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

模板方法设计模式==60

什么是模板方法设计模式?

定义功能时,功能的一部分是确定,而确定的部分在使用不确定,那么这时就得将不确定的部分暴露出来,由该子类去完成。

接口==61==62==63

接口:初步理解接口是一个特殊的抽象类,当抽象类张全部是抽象方法时,可以通过接口的形式来体现。

Class 用于定义类

Interface 用于定义接口

接口张成员的格式

1、public static final String NAME=”小李”;//全局常量

2、Public abstract void show();//抽象方法

注意:

1、接口中只能出现public 访问修饰符

2、接口不可以创建对象,因为里面有抽象方法,需要被子类实现,子类对接口中的所有抽象方法实现后,子类才能够实例化,否则于类就是一个抽象类

只有类与接口之间才存在实现

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

Java不支持多继承,因为存在安全隐患,当父类中定义了相同功能,功能内容不同时,子类不确定要运行哪一个

但是java保留了这种机制,并用另一种体现形式来完成表示===多实现

关系:

类与类之间:继承关系

接口与类之间:实现关系

接口与接口之间:继承关系

如何实现一个接口

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

如何多实现接口

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

接口:提高了我们功能的扩展性,因为它降低事物与事物之间的耦合性(关系紧密程度)

父类中定义的是多个类*性的基本功能,接口中定义的是扩展功能

接口好处:

1、可以多实现,也就是一个类可以实现多个接口

包机制==64

包(package)

什么是包?可以理解为文件夹

包的作用:

1、对类进行分类管理

2、给类提供了多成命名空间

注意:

1、类名的全程是包名.类型

命名规范:包全小写

2、定义包的语句一定要在代码的第一行

package pack;

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

包与包之间的访问及访问权限==65

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

jar包==66

jar包  就是java里的一个压缩包

做项目时顺序应该是先建一个文件夹然后包在包里面建立类等

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

java基础课程笔记 static  主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

然后在编译就可以了

java基础课程笔记 static 主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包的更多相关文章

  1. Java,面试题,简历,Linux,大数据,常用开发工具类,API文档,电子书,各种思维导图资源,百度网盘资源,BBS论坛系统 ERP管理系统 OA办公自动化管理系统 车辆管理系统 各种后台管理系统

    Java,面试题,简历,Linux,大数据,常用开发工具类,API文档,电子书,各种思维导图资源,百度网盘资源BBS论坛系统 ERP管理系统 OA办公自动化管理系统 车辆管理系统 家庭理财系统 各种后 ...

  2. 《从零开始学Swift》学习笔记(Day 57)——Swift编码规范之注释规范:文件注释、文档注释、代码注释、使用地标注释

    原创文章,欢迎转载.转载请注明:关东升的博客 前面说到Swift注释的语法有两种:单行注释(//)和多行注释(/*...*/).这里来介绍一下他们的使用规范. 1.文件注释 文件注释就在每一个文件开头 ...

  3. Java基础进阶:APi使用,Math,Arrarys,Objects工具类,自动拆装箱,字符串与基本数据类型互转,递归算法源码,冒泡排序源码实现,快排实现源码,附重难点,代码实现源码,课堂笔记,课后扩展及答案

    要点摘要 Math: 类中么有构造方法,内部方法是静态的,可以直接类名.方式调用 常用: Math.abs(int a):返回参数绝对值 Math.ceil(double a):返回大于或等于参数的最 ...

  4. Java基础学习总结(49)——Excel导入导出工具类

    在项目的pom文件中引入 <dependency> <groupId>net.sourceforge.jexcelapi</groupId> <artifac ...

  5. AJPFX关于面向对象中的对象初始化整理,综合子父类、代码块等等

    今天总结了一下子父类当中含有静态代码块.代码块.构造函数.成员变量.子类复写父类方法时子类的初始化过程,把思路理清一下 class Fu { //父类成员变量 private int num = 3; ...

  6. Java基础学习笔记总结

    Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...

  7. Java基础学习笔记十一 Eclipse开发工具

    Eclipse是功能强大Java集成开发工具.它可以极大地提升我们的开发效率.可以自动编译,检查错误.在公司中,使用的就是Eclipse进行开发. Eclipse的下载.安装.卸载 下载 http:/ ...

  8. Java 学习(20):Java Applet 基础 &amp&semi; Java 文档注释

    -- Java Applet 基础 -- Java 文档注释 Java Applet 基础 Applet 是一种 Java 程序.它一般运行在支持 Java 的 Web 浏览器内.因为它有完整的 Ja ...

  9. Java基础入门 - 三种注释及文档注释详解

    类似C/C++,Java也支持单行和多行注释 注释中的字符在编译时会被忽略 注释通常为类.变量和方法的主要描述 单行注释 // 注释内容 多行注释 /* 注释内容 */ /* * 注释内容 */ 文档 ...

随机推荐

  1. Could not create the view&colon; An unexpected exception was thrown&period;如何解决

    今天打开Myeclipse10的时候,发现server窗口出现一堆问题,问题如标题,然后下方出现了一堆java.lang.NullPointerException的问题. java.lang.Null ...

  2. GDI&plus;编程说明及小结

    原文地址:http://blog.csdn.net/byxdaz/article/details/5972759 GDI+(Graphics Device Interface Plus图形设备接口加) ...

  3. Action重定向总结

    [HttpPost] public ActionResult StudentList( string StudName, string studName, DateTime BirthDay, For ...

  4. Windows Server 2012安装mysql5&period;7&period;24记录

    系统环境: 一.下载mysql5.7.24安装包 地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads 下载解压到相应的目录,我的路径 ...

  5. 根据指定的key,将二维数组的value转换为string,适用于mysql的in查询

    function array_unique_join($arr,$param){ $utm_source_arr = array_unique(array_column($arr,$param)); ...

  6. navicat 定时备份

    1.点击备份-->新建备份 2.对象选择:可以选择要备份的表也可以不选,默认全部选择:之后点击保存:输入文件名即可:注意弹框不会消失,这是已经生成了备份任务 3.点击计划-->新建批量计划 ...

  7. MySQL Execution Plan--EXPLAIN用法

    MySQL Explain新用法: --使用EXPLAIN来查看语句的最终执行计划 语法:EXPLAIN [EXTENDED] SELECT select_options --在MYSQL .7版本后 ...

  8. 170620、springboot编程之页面版Hello World

    书接上回,把Hello World 在页面上显示! 1.在pom文件中加入web支持 <dependency> <groupId>org.springframework.boo ...

  9. Luogu3307:&lbrack;SDOI2013&rsqb;项链

    传送门 求每个珠子的方案数 即有序的求三元组 \((x,y,z),x,y,z\le a\) 满足 \(gcd(x,y,z)=1\) 设 \(G_i\) 表示 \(i\) 个小于等于 \(a\) 的有序 ...

  10. linux开发node相关的工具

    epel-release yum install epel-release node yum install nodejs mongodb 安装mongodb服务器端 yum install mong ...