CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛

java学习笔记-永久免费的源码丞旭猿

一、Static关键字

修饰符:作用:修饰成员方法,成员变量

特点:1、被所在类的所有对象共享(判断是否使用静态关键字的条件)

2、随着类的加载而加载,优先于对象存在(对象需要类被加载后,才能创建)

3、可以通过类名调用(推荐使用)(也可以通过对象名调用)

注意事项:

1、静态方法只能访问静态的成员

2、非静态方法可以访问静态的成员,也可以访问非静态的成员

3、静态方法中是没有this关键字

非静态成员——实例(对象)成员

静态成员————类成员

静态变量在内存中只有一份数据

二、final关键字

final 关键字是最终的意思,可以修饰(方法,变量,类)

final 修饰的特点:

修饰方法:表明该方法是最终方法,不能被重写

修饰变量:表明该变量是常量,不能再次被赋值(变量的每个字母都需要大写,多个单词用下划线分割)

修饰类:表明该类是最终类,不能被继承

变量是基本类型:final修饰指的是基本类型的数据值不能发生改变

变量是引用类型:final修饰指的是引用类型的地址值不能发生改变,但是地址里面的内容可以发生改变

final修饰成员变量初始化时机:(1)直接给变量赋值

(2)在构造方法执行完毕前赋值

注意:abstract和final不可以共存:

在类中abstract希望子类继承,final是阻止继承;

在方法中,abstract 是希望子类重写,final阻止重写;

三、权限修饰符关键字

1.public:公共的,当前模块内都可以访问

2.protected:受保护的,同一个包下都可以,其他包下只有子类可以访问

3.默认权限(package-private):也称作为包私有,同一个包下可以,其他包不允许

4.private:只能本类访问

权限大小排行:public > protected > 默认权限 >private

常用权限:

private常用于封装修饰成员变量或者修饰构造(目的防止外界创建本类对象)

对于类只有两种权限:public和包私有(默认)

四、构造代码块

1、怎么写:在类中方法外定义一个大括号

2、构造代码块的执行特点,及作用:

执行特点:会在每一个构造方法执行前,执行一次

作用:如果每个构造方法有重复的逻辑时。比如可以给自定义常量赋值,或者抽取构造方法中共性内容

五、静态代码块

1、怎么写:

直接在构造代码块上加上static

2、静态代码块的执行特点,及作用执行特点:随着类加载到内存,会执行一次。(类加载到方法区初始化的时候就会执行静态代码块)作用:可以对静态数据进行初始化

六、局部代码块

1、怎么写:任何局部代码位置都可以定义局部代码块 ,就是一对大括号。静态代码块,构造代码块,方法中,构造方法中都可以定义局部代码块。相比之下在方法中定义局部代码块稍多一些

2、作用:可以限定变量的作用域 , 在代码块执行完毕, 及时释放内存3、变量的作用域:变量所在的那对大括号即是作用域范围

七、接口

1、介绍:当一个类中的所有方法都是抽象方法的时候,此类就是定义规则的类 , 我们就可以将其定义为接口

接口也是一种引用数据类型,它比抽象类还要抽象

2、接口存在的两个重要意义规则的定义程序的扩展性

3、接口的定义和特点(1)接口用关键字interface来定义public interface 接口名 {}

(2)接口不能实例化(3)类与接口之间是实现关系,通过implements关键字表示public class 类名 implements 接口名 {}

(4)接口的子类(实现类)要么重写接口中的所有抽象方法要么是抽象类

注意:类和接口的实现关系,可以单实现,也可以多实现。

public class 类名 implements 接口名1 ,  接口名2 {}

4、接口中成员的特点(1)成员变量只能是常量

默认修饰符:public static final

(2)构造方法没有(3)成员方法只能是抽象方法默认修饰符:public abstract

类和接口的关系

1、类和类的关系继承关系,只能单继承,但是可以多层继承/2、类和接口的关系实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口3、接口和接口的关系继承关系,可以单继承,也可以多继承

4.访问方式:最常用方式是直接用接口名去访问。

接口和抽象类的使用区别:

接口和抽象类有些共同点:都是抽象的类型,都不能实例化对象,都当做父类型使用,

他们的区别如下:

(1) 事物的共性内容(属性,行为),抽取到父类中(可以是抽象类)

(2) 特有的行为,可以抽取到接口中

1 JDK8版本可以在接口中定义默认方法   2 默认方法 :       允许在接口中定义非抽象方法,但是需要使用关键字 default 修饰,这些方法就是默认方法       作用 : 解决接口升级的问题       格式 :           public default 返回值类型 方法名(参数){ ... }           public default void show(){ ... }       注意事项 :           1 默认方法不是抽象方法,所以不强制被重写。但是可以被重写,重写的时候去掉default关键字           2 public可以省略,default不能省略           3 如果实现了多个接口,多个接口中存在相同的方法声明               子类就必须对该方法进行重写                 接口中的静态方法,直接用接口名调用就行

接口的使用思路

1、如果发现一个类中所有的方法都是抽象方法,那么就可以将该类,改进为一个接口

2、涉及到了接口大面积更新方法,而不想去修改每一个实现类,就可以将更新的方法,定义为带有方法体的默认方法

3、希望默认方法调用的更加简洁,可以考虑设计为static静态方法。(需要去掉default关键字)

/4、接口中的方法出现了重复的代码,还不想被其他类访问, 可以考虑抽取出一个私有方法。(需要去掉default关键字)

//定义接口

package com.itheima.interface_demo.interface_test1;public interface Player {    //  public abstract void play();  可以简写    void play();    void pause();    void stop();}

//定义MP3类

package com.itheima.interface_demo.interface_test1;public class MP3 implements Player {    @Override    public void play() {        System.out.println("MP3正在播放音乐!");    }    @Override    public void pause() {        System.out.println("MP3暂停播放音乐!");    }    @Override    public void stop() {        System.out.println("MP3停止播放音乐!");    }}

//定义Mp4类

package com.itheima.interface_demo.interface_test1;public class MP4 implements Player {    @Override    public void play() {        System.out.println("MP4正在播放音乐!");    }    @Override    public void pause() {        System.out.println("MP4暂停播放音乐!");    }    @Override    public void stop() {        System.out.println("MP4停止播放音乐!");    }}

定义Phone类

package com.itheima.interface_demo.interface_test1;public class Phone implements Player {    @Override    public void play() {        System.out.println("Phone正在播放音乐!");    }    @Override    public void pause() {        System.out.println("Phone暂停播放音乐!");    }    @Override    public void stop() {        System.out.println("Phone停止播放音乐!");    }}

//测试接口

package com.itheima.interface_demo.interface_test1;/*    需求 :       1  创建一个播放接口(Player)       2  定义三个抽象方法         播放(play)         暂停(pause)         停止(stop)       3  定义MP3类,MAP4类,手机类,实现接口,重写抽象方法 */public class Test {    public static void main(String[] args) {        MP3 mp3 = new MP3();        mp3.play();        mp3.pause();        mp3.stop();        MP4 mp4 = new MP4();        mp4.play();        mp4.pause();        mp4.stop();        Phone phone = new Phone();        phone.play();        phone.pause();        phone.stop();    }}

八、枚举

1、定义枚举

权限修饰符 enum枚举名称 {

枚举项1,枚举项2…;

}

枚举项之间使用逗号分隔,最后使用分号结束

枚举项是当前类型的对象

public enum Sex{    BOY,GIRL;}
//将字符串转换为枚举项Student str = new Student();Scanner scanner =new Scanner(System.in);String sexStr = scanner.next();Signal blue = Signal.valueOf(sexStr);

枚举其实本质上是一个类,每一个枚举项是本枚举类类型的一个对象。

枚举类都是继承了枚举类型:java.lang.Enum

枚举都是最终类,不可以被继承

构造器的构造器都是私有的,枚举对外不能创建对象

枚举类的第一行默认都是罗列枚举对象的名称的。

枚举类相当于是多例模式。

枚举类型也是属于类,允许定义其他成分,比如构造器(构造方法权限一定是私有的,即使省略也是private权限),成员方法,成员变量

举报/反馈

声明:本文部分素材转载自互联网,如有侵权立即删除 。

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
相关推荐
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容