
java笔记
冰暮流星
这个作者很懒,什么都没留下…
展开
-
建造者设计模式代码框架
建造者模式构建的对象是庞大复杂的,并且按照一定的工序将组件组装起来。首先要搭建要构建对象的总框架,类里面定义好构建各个组件的属性和方法。第三步,搭建指导者类,这个类定义子组件构建顺序。最后是具体构建子组件的类,调用接口里面的方法。接着构建一个接口,接口定义构建子组件的方法。建造者模式又称为生成器模式。原创 2025-03-21 22:26:54 · 104 阅读 · 0 评论 -
设计模式之门面模式
门面模式是把几个内部系统统一封装为一个接口,外部只需要调用这个接口就可以访问内部系统了。用户不需要了解内部是如何运行的。System.out.println("厨师进行烹饪");System.out.println("供应蔬菜");System.out.println("服务员端菜");//在构造方法里面新建各个子系统类的对象。最后定义一个方法,外界通过这个方法调用各个子系统。定义一个构造方法,把各个子系统的对象建立起来。属性是各个子系统类名和访问后需要实现的方法。首先定义内部子系统的类。原创 2025-03-18 17:03:32 · 634 阅读 · 0 评论 -
设计模式之单例模式的饿汉模式2
这里假定游戏《红色警戒3》苏联阵营的英雄娜塔莎是唯一的,别人只能调用这个唯一的娜塔莎。//在静态代码块里声明构造这个唯一对象。本次单例模式是使用静态代码块的形式。//对外声明调用方法。//构建私有的构建方法。原创 2025-03-14 22:32:07 · 268 阅读 · 0 评论 -
java单例模式—饿汉模式
比如说,天上恒星,除了太阳,就属天狼星在地球上看着最亮,世界上只有一个天狼星。这里就创建一个天狼星的类。public static Star getInstance() //外界通过这个方法调用对象。//为对象赋值天狼星。这就要求类进行封装,别人不能再创建新对象了,而是在类里面创建新对象了。public void getlight() //设置发光方法。单例模式,要求只能生成一个对象,别人不能再生成这个对象了。private Star(){ //构造方法私有化。//在类里面创建一个单例对象。原创 2025-03-06 12:01:39 · 147 阅读 · 0 评论 -
java泛型的定义
Book<String> bookname=new Book<String>("《零基础学java》");System.out.println("作者"+bookAuthor.getBookinfo());System.out.println("价格:"+bookprice.getBookinfo());System.out.println("书名:"+bookname.getBookinfo());java中参数化类型被称为泛型,它的作用是限制被添加的数据类型。其中T代表被传入参数的数据类型。原创 2024-09-27 21:37:04 · 147 阅读 · 0 评论 -
java面向对象复习——接口
class Diamond implements DrawImage { // 修正类名。接口是抽象类的延伸,可以将它看成是纯粹的抽象类,接口中所有方法都没有方法体。System.out.println("画正方形");System.out.println("画矩形");System.out.println("画菱形");接口中的所有抽象方法,类中都要重写。原创 2024-09-27 20:38:24 · 226 阅读 · 0 评论 -
java面向对象复习—抽象类
上面代码中,Shangchang是抽象类,它的属性和方法被Wallmarket类和Taobao继承,方法都被重写了。抽象类想要创建实例,只能依靠继承的子类,使用子类对象创建抽象类对象。抽象类是不能产生独享实例。定义抽象类需要abstract关键字。abstract 方法返回值类型 方法名(参数列表)absrtact class 类名{抽象类创立实例对象,需要通过子类创建。抽象方法没有方法体,直接以分号结尾。抽象类除了被继承,没有其他意义。抽象方法只能被子类重写。}抽象类的抽象方法语法。原创 2024-09-27 17:21:21 · 139 阅读 · 0 评论 -
java面向对象复习—重写
重写是发生在继承,指子类继承父类之后,根据自己的实际情况,重写了父类的成员方法。重写保留父类方法名称,方法内容会重写,更改成员方法存储权限。上面代码中,子类Ipad2继承了父类Compter2,但是把方法showpicture重写了,由原来鼠标点击图片改为手指点击触摸屏。原创 2024-09-27 16:26:28 · 181 阅读 · 0 评论 -
java面向对象复习-继承
上面代码中,父类是Computer,子类是Jicheng.class 子类名字 extends 父类名称。继承是子类继承父类,同时继承父类的属性和方法。在java中,一个子类只能继承一个父类。子类是可以有自己的属性和方法。原创 2024-09-27 16:18:36 · 135 阅读 · 0 评论 -
java面向对象复习—封装
这个例子中,cook类中的属性和方法都被封装了,需要在类中新建一个方法去调用封装的属性和方法。一旦被封装,外界就不能访问了,需要在类中新建一个方法去调用被封装的属性和方法。封装可以是类,也可以是属性和方法。原创 2024-09-27 11:11:55 · 184 阅读 · 0 评论 -
java面向对象复习——静态方法
静态方法是想要调用类中的方法和属性,但不愿意或不能新建实例,这种情况下就得使用静态方法。上面代码中,类中的方法都用static修饰,这样就不用新建实例对象就可以调用了。静态方法使用static关键字修饰。原创 2024-09-27 10:31:56 · 249 阅读 · 0 评论 -
java面向对象复习之静态变量
有时候,多个类或一个类多个方法都要调用同一个变量。就好比一个水池,有注水口和出水口两个方法,都要对水池水量进行操作。这种情况下,变量就要用static进行修饰,该变量就是静态变量。上面代码中,water用static进行修饰,就成为一个静态变量,这样类里面多个方法都可以对它进行操作了。如果water不用static修饰,会提示报错。原创 2024-09-27 10:03:56 · 223 阅读 · 0 评论 -
java面向对象复习-this关键词
在上面代码中,类中定义一个属性name,borrow方法里面也有一个name的参数,通过构造有参构造方法,利用this关键字引用属性name。当类中成员变量与成员方法中参数重名时,方法如何使用成员变量的值?先定义一个有参构造方法,形参名是成员变量名,方法体是。解决这个问题一般用到this关键字。this.成员变量名=成员变量名。一般要与有参构造方法结合。原创 2024-09-26 20:36:13 · 173 阅读 · 0 评论 -
java面向对象复习—构造方法
3.构造方法的主要作用是完成对象的初始化工作,它能把定义对象的参数传给成员。1.构造方法没有返回类型,也不能定义为void。2.构造方法的名称要与本类的名称相同。上面代码类中构建了一个无参构造方法。构造方法分为有参和无参两种。原创 2024-09-26 20:07:36 · 219 阅读 · 0 评论 -
java面向对象复习2—利用面向对象方法制作一个汇率换算器
类Huansuan定义了一个方法,方法是一个循环,将美元换算成应换多少人民币。这里假定美元换人民币汇率是1美元=6.993元人民币,不考虑现实汇率。这里假定要一次处理多个美元换人民币业务,美元数据已经存到一个数组里面。思路是新建一个类,在类中定义一个方法。原创 2024-09-26 16:34:57 · 303 阅读 · 0 评论 -
java面向对象复习1—如何新建一个类及新建对象,调用方法和属性
这段代码中,booknum book=new booknum()新建了一个对象名。定义了一个add方法,里面有shelf和box两个形参。book.sheif和book.box是调用了属性。里面有属性shelf和box两个属性。java新建一个类,语法格式是。类名 对象名=new 类名()定义了一个叫Booknum的类。权势修饰符 数据类型(形参)book.add是调用了方法。原创 2024-09-26 16:11:07 · 282 阅读 · 0 评论 -
java的BigInteget介绍
当java程序需要处理一个非常大的整数,超过long类型的取值范围,就无法用基本类型对数值接收,这样就要用到BigInteget类。System.out.println("bi2与bi1的差:"+bi2.subtract(bi1));System.out.println("bi2与bi1的和:"+bi2.add(bi1));BigInteger(String val) 将字符串变为BigInteger类型数据。BigInteger类的方法。原创 2024-09-12 23:50:01 · 414 阅读 · 0 评论 -
java之Math类介绍
ceil(double a) 计算大于或等于a的最小整数,并将该整数转化为doublie数据。max(double a,double b) 返回a和b的较大值。min(double a,double b) 返回a和b的较小值。random() 用于生成一个大于或等于0且小于0.1的随机数。floor(double a) 计算小于或等于a的最大整数。round(double a) 计算小数a的四舍五入的值。sqrt(double a) 计算a的平方根。abs(double a) 计算a的绝对值。原创 2024-08-27 22:48:55 · 1127 阅读 · 0 评论 -
java之静态内部类
静态内部类,就是使用static关键字修饰的内部成员类。静态内部类只能访问外部类的静态成员,通过外部类访问静态内部类成员时,因为程序已经提前在静态常量区为静态内部类分配好了内存,所以即使静态内部类没有加载,依然可以通过外部类直接创建一个静态内部类对象。在这段代码中,定义了一个静态变量m,又定义了一个静态内部类Neibu2。外部类名.静态内部类名 变量名=new 外部类名.静态内部类名();上面的代码是创建了静态内部类的对象。创建静态内部类对象的语法格式。原创 2024-08-19 22:40:19 · 223 阅读 · 0 评论 -
java之局部内部类
java中,局部内部类也称为方法内部类,指定义在某个局部范围中的类,它和局部变量都是在方法中定义的,有效范围只限于方法内部。局部内部类可以访问外部类的所有成员和成员方法,在外部类中无法访问局部内部类的变量和方法。如果外部类要访问内部类的成员,只能在局部内部类的所属方法中创建局部内部类的对象,通过对象访问局部内部类的变量和方法。在这段代码中,首先创建了外部类Waibu,在方法test2中,定义了一个局部内部类。通过在类中创建内部类的对象访问局部内部类的变量和方法。原创 2024-08-11 23:05:49 · 212 阅读 · 0 评论 -
java成员内部类
在上面代码中,在Outer中创建了Inner的类,在创建内部类之后,需要在外部类中写方法实例化内部类,否则容易报错。在java中,一个类除了可以定义成员变量,成员方法,还可以定义类,这样的类称为成员内部类。外部类名.内部类名 内部类对象=外部类对象.new 内部类名();外部类名 外部类对象=new 外部类名();这段代码是如何创建内部类的对象。创建内部类的对象语法格式是。这段代码是内部类的代码。原创 2024-08-07 23:06:57 · 1408 阅读 · 0 评论 -
java之Object类
java中,提供了Object类,它是所有类的父类,每个类抖直接或间接继承了Object类,因此这个类被叫做超类。当定义一个类没有任何父类可以继承,一般默认继承Object类。Object类的方法。原创 2024-08-03 22:50:35 · 312 阅读 · 0 评论 -
java之对象向下转型
java中,向下转型是为了重新获得因为向上转型而丢失的子类特性。在先下转型前,必须先进行向上转型。第一段实现了向上转型,第二段实现了向下转型。子类类型 子类对象=(子类)父类对象。父类类型 父类对象=子类实例。原创 2024-07-30 22:21:34 · 287 阅读 · 0 评论 -
java的对象向上转型
对象向上转型,父类对象就可以调用子类重写父类的方法,这样当父类对象需要添加新的功能时,只需要添加一个子类,在子类中对父类的功能进行扩展,而不需要更改父类代码。执行代码里,先定义了Dog类的对象实例,通过Animal an = dog的方法实现了向上转型,把shout方法重写了。这段代码里,子类继承了父类,重写了shout方法,并且新写了一个eat方法。父类Animal定义了一个方法,shout方法输出的内容是“喵喵”最后执行shout方法,输出的是。父类类型 父类对象=子类实例。原创 2024-07-30 21:58:20 · 1195 阅读 · 0 评论 -
java之匿名内部类
匿名内部类的特点是只需要使用一次,也就是说,匿名类不能重复使用。创建匿名内部类的实例后,这个匿名内部类会立即消失。System.out.println("缠上保鲜膜为香肠保鲜");匿名内部类应该遵循以下原则。匿名类不能定义静态的成员。匿名类不能用修饰符修饰。只可以创建一个匿名类。原创 2024-07-29 21:22:44 · 456 阅读 · 0 评论 -
java的内部类
System.out.println("发动机" + this.model + "点火");System.out.println("启动" + this.brand);Car car = new Car("大众郎行");在java中,类中可以有成员内部类。语法格式是class 外部类{原创 2024-07-29 21:05:38 · 697 阅读 · 0 评论 -
java如何实现接口之间的继承
这段代码表示Action03接口继承了Animal03和Color接口。interface 接口1 extends 接口2,接口3。java如果要实现接口之间的继承需要用到语句。首先定义了Animal03和Color接口。一个接口可以继承多个接口。原创 2024-07-26 22:58:10 · 277 阅读 · 0 评论 -
java如何同时继承接口和抽象类
这段代码里首先定义了一个Animal02的接口,接口里面定义了一个字符型变量Name,抽象方法shout(),info()class 类名 extends 抽象类名 implements 接口。在类中方法重写了eat,shout,info等方法。java中要同时继承接口和抽象,需要用到的语句是。定义的类dog02里面继承了抽象类和接口。抽象类里面定义了一个抽象方法eat。接着定义了一个抽象类。原创 2024-07-26 22:42:37 · 267 阅读 · 0 评论 -
java如何通过接口实现多重继承
java中,一个子类只能继承一个父类,不能继承多个父类,但是可以实现多个接口进而实现多重继承。这里定义了dadlikedo和mumlikedo两个接口,通过实现这两个接口实现多重继承。System.out.println("儿子喜欢做的事");System.out.println("看电视");System.out.println("做饭");System.out.println("抽烟");System.out.println("钓鱼");class 类名 implements 接口1,接口2。原创 2024-07-23 17:18:31 · 340 阅读 · 0 评论 -
java中子类如何同时继承父类以及实现接口
这里有个题目,创建直升机类,继承飞机类,并且实现可悬停接口,让直升机起飞后,悬停在半空。class 子类名 extends 父类名 implements 接口名。System.out.println("飞机起飞");System.out.println("飞机悬停");java中,要实现子类同时继承父类以及实现接口,语法格式是。原创 2024-07-23 16:44:50 · 612 阅读 · 0 评论 -
java之接口
接口本身不能直接实例化,接口中抽象方法和默认方法只能通过接口实现类的实例对象调用。这段代码定义了一个类Dog01,用implements实现了Animal01和Action接口,并且分别重写了接口中的抽象方法。这段代码中首先实现了Animal01里面的静态方法,接着定义了一个dog的类,分别实现了info,shout,eat三个方法。在接口中定义了全局变量ID,NAME,定义了抽象方法shout()和info()两种,定义了静态方法getID。这段代码中,定义了接口Action,定义了抽象方法eat。原创 2024-07-22 22:47:36 · 1949 阅读 · 0 评论 -
java之final方法
如果不想让父类的成员被子类重写,可以在声明父类的成员时可以用final语句修饰。在上面代码中,Animal类被final修饰后,不能被子类Dog继承。上面代码中,变量AGE被final修饰后成为常量,就不能再变更了。上面代码中,用final修饰了方法,这个方法就不能被子类重写。在java中,可以使用final修饰的类,属性,方法。使用final修饰的变量是常量,常量不可修改。使用final修饰的方法不能被子类重写。使用final修饰的类不能有子类。使用final关键字修饰类。原创 2024-07-22 21:59:05 · 286 阅读 · 0 评论 -
java之抽象工厂示例
创建工厂类,工厂类中有一个抽象的生产方法,创建汽车厂类和鞋厂类,重写工厂类中的抽象方法,输出汽车厂生产的是汽车,鞋厂生产的是鞋。原创 2024-07-20 17:24:21 · 260 阅读 · 0 评论 -
java之抽象类与抽象方法
抽象类和抽象方法没有任何意义,除非被继承。抽象方法是没有方法体,除非被重写。抽象类除了被继承之外,没有任何方法。在java中,抽象类不能产生对象实例。定义对象实例时,需要使用abstract关键字。[权限修饰符] abstract 方法返回值两类型 方法名(参数表);[权限修饰符] abstract calss 类名{使用abstract定义的方法叫抽象方法。定义abstract语法如下。抽象方法定义的语法如下。原创 2024-07-20 16:40:14 · 196 阅读 · 0 评论 -
java之方法的重载
System.out.println("调用add(int...a)不定长参数方法:"+a.add(1,2,3,4,5,6,7,8,9));System.out.println("调用add(int a,double b)方法"+a.add(1,3.3));System.out.println("调用add(double a,int b)方法"+a.add(2.1,3));System.out.println("调用add(int,int)方法:"+a.add(1,2));原创 2024-07-19 16:44:47 · 313 阅读 · 0 评论 -
java中子类重写方法后如何调用重写前的方法
java中,子类重写父类的方法后,如果想调用重写前的父类方法,可以使用super关键字。return"欢迎使用";super.父类方法或属性。原创 2024-07-19 15:58:10 · 468 阅读 · 0 评论 -
java类的继承中子类对父类方法的重写
比如说有有个交通运输类,有个方法是输出“交通工具可以移动”,子类汽车类在继承交通运输类后需要把这个方法改为“汽车在公路上移动”,子类火车类在继承交通运输类,这个方法需要改为输出“火车在铁路上移动”。java中,子类继承父类,但父类一些方法在子类中不是那么合适,就可以在子类中对要修改方法进行修改,这种方法叫重写。System.out.println("交通工具可以移动");System.out.println("火车在铁轨上行驶");System.out.println("汽车在公路上行驶");原创 2024-07-19 11:35:54 · 461 阅读 · 0 评论 -
java在继承的继承上添加新的属性和方法
java中,子类在继承父类的属性和方法的基础上可以添加新的属性和方法。class 子类 extends 父类。原创 2024-07-18 23:03:17 · 268 阅读 · 0 评论 -
java如何实现类的继承
类的继承是指在现有的一个类的基础上构建新的类,构建的类称为子类,现有的类称为父类。子类继承父类的属性和方法。如果要声明一个类继承另一个类,需要用到extends关键字。class 子类 extends 父类。原创 2024-07-18 22:54:08 · 1170 阅读 · 0 评论 -
java之静态代码块
在java中用static修饰的代码块是静态代码块。当类被加载时,静态代码就会执行,由于类只加载一次,因此静态代码块就执行一次。可以看出,静态代码块只执行了一次,而且是最先执行。我是xuesheng类的构造方法。我是xuesheng类的构造方法。静态代码块会最先执行。上述代码执行结果如下。原创 2024-07-10 22:59:04 · 1851 阅读 · 0 评论