java
菠萝吹皮
这个作者很懒,什么都没留下…
展开
-
Java面向对象高级之static
实例方法需要创建对象来调用,此时对象为了调用方法,对象占用内存,这样会浪费内存。*实例变量:每个对象都要有一份,数据各不相同(如name、score、age)*类变量:数据只需要一份,且需要被共享时(修改,访问)*工具类没有创建对象的需求,建议将工具类的构造器私有。*类方法,直接用类名调用即可,调用方便,也节省内存。2.访问自己类中的变量,是否可以省略类名不写?四.static修饰类方法的应用场景——工具类。各自在什么情况下定义?一.static修饰成员变量。对象名.类变量(不推荐)类名.类变量(推荐)原创 2023-12-08 19:41:44 · 422 阅读 · 0 评论 -
Java部分知识点总结(2)
3.List和数组类似,可以动态增长,根据实际存储的数据长度自动增加List的长度。1.Set接口实例存储的是无序的,不重复的数据。List接口实例存储的是有序的,可以重复的元素。2.Set检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变(实现类有HashSet、TreeSet)2.抽象类中可以包含非抽象类的普通方法,接口中的方法必须是抽象的,不能有非抽象的普通类方法。2.ArrayList是可以更改大小的数组,而LinkedList是链表实现的。3.next()方法返回集合中的下一个元素。原创 2023-12-08 20:47:23 · 345 阅读 · 0 评论 -
Java部分知识点总结(1)
2.在抽象类中可以构造方法,只是不能直接创建抽象类的实例对象,但实例化子类的时候,就会初始化父类,不管父类是不是抽象类都会调用父类的构造方法,初始化一个类,先初始化父类。3.创建对象时由编译器自动调用,并且在对象的生命周期内只调用一次(相当于每个人的出生,每个人只能出生一次)如果用户没有显式定义构造方法,编译器就会默认生成一份构造方法,而且默认生成的构造方法一定是无参的。局部变量是在方法被调用时存在于栈中,方法执行结束,从栈中清除。成员变量是在对象创建以后存在于堆中,对象回收时,成员变量消失。原创 2023-12-07 20:55:38 · 427 阅读 · 1 评论 -
Java泛型
泛型本质:把具体的数据类型作为参数传给类型变量。这样可以避免强制类型转换,及其可能出现的异常。原创 2023-12-07 17:31:33 · 132 阅读 · 1 评论 -
Java异常处理
1.捕获异常,记录异常并响应合适的信息给用户。开发中对于异常的常见处理方式。2.捕获异常,尝试重新修复。*直接抓获程序出现的异常。原创 2023-12-07 14:31:22 · 116 阅读 · 1 评论 -
Java面向对象高级:抽象类
父类知道每个子类都要做某个行为,但每个子类要做的情况不一样,父类就定义成抽象方法,交给子类去重写实现,我们抽出这样的抽象类,就是为了更好地支持多态。在里面定义2个方法,一个是模板方法:放相同的代码里,一个是抽象方法:具体实现交给子类实现。*在Java中有一个关键字叫:abstract,它就是抽象的意思,可以用它修饰类、成员方法。修饰方法,这个方法就是抽象方法。*抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类。*类该有的成员(成员变量、方法、构造器)抽象类都可以有。抽象方法只有方法签名。原创 2023-11-15 21:14:47 · 54 阅读 · 1 评论 -
Java面向对象高级:final与常量
程序编译后,常量会被“宏替代”:出现常量的地方全部会被替换成其记住的字面量,这样可以保证使用常量和直接用字面量的性能是一样的。注意:常量名的命名规范:建议使用大写英文单词,多个单词使用下划线连接起来。*作用了static final修饰的成员变量就称为常量。*作用:通常用于记录系统的配置信息。*代码可读性更好,可维护性也更好。final修饰变量的注意。原创 2023-11-15 20:09:07 · 58 阅读 · 1 评论 -
Java面向对象高级之多态
4.多态存在的问题:多态下不能直接调用子类的都有方法。*自动类型转换 :父类 变量名=new 子类();情况下的一种现象,表现为:对象多态、行为多态。子类 变量名=(子类)父类变量名。原创 2023-11-13 21:10:50 · 88 阅读 · 0 评论 -
Java项目实战:ATM系统的项目搭建
定义一个Test类,负责测试系统:创建ATM对象代表ATM系统并启动。*定义一个ATM类,代表ATM系统,负责处理账户相关的业务需求。*定义一个账户类Account,定义系统关心的账户信息。ATM类 中使用什么来存储系统全部用户的账户信息?原创 2023-11-04 16:14:00 · 51 阅读 · 1 评论 -
Java常用API:使用String来开发验证码
3.定义for循环控制生成多少位随机字符,每次得到一个字符范围内的随即索引,根据索引提取该字符,把该字符交给code变量连起来,循环结束后,在循环外返回code即可。2.方法内定义2个字符串变量:1个用来记住生成的验证码,1个用来记住要用到的全部字符。*1.设计一个方法,该方法接收一个整型参数,最终要返回对应位数的随机验证码。实现随机产生验证码,验证码的每位可能是数字、大写字母、小写字母。**同时需要设置Random随机。原创 2023-11-03 20:20:07 · 62 阅读 · 0 评论 -
Java常用API:包
3.如果当前程序中,要调用Java提供的程序,也需要先导包才可以使用;但是Java、lang包下的程序是不需要我们导包,可以直接使用。4.如果当前程序中,要调用多个不同包下的程序,而这些程序名正好一样,此时默认只能导入一个程序,另一个程序必须带包名访问。2.如果当前程序中,要调用其他包下的程序,则必须在当前程序中导包,才可以访问(导包公式:import 包名、类名;1.如果当前程序中,要调用自己所在包下的其他程序,可以直接调用(同一个包下的类,互相可以直接调用)原创 2023-11-02 19:49:37 · 38 阅读 · 0 评论 -
Java面向对象:成员变量与局部变量的区别
2.初始化值不同:成员变量(有默认值,不需要初始化赋值),局部变量(没有默认值,使用之前必须完成赋值)5.生命周期不同:成员变量(与对象同生共死),局部变量(方法调用而生,方法结束而亡)1.类中位置不同:成员变量(类中,方法外)、局部变量(常见于方法中)3.内存位置不同:成员变量(存在于堆内存),局部变量(存在于栈内存)4.作用域不同:成员变量(整个对象),局部变量(在所归属的大括号中)原创 2023-11-02 19:29:15 · 36 阅读 · 0 评论 -
Java面向对象:封装
1.封装就是用类设计对象处理某一个数据时,应该把要处理的数据,以及处理这些数据的方法,3.公开成员,可以使用public进行修饰;面向对象三大特征:封装,继承,多态。隐藏成员,使用private进行修饰。2.合理隐藏,合理暴露。设计到一个对象中去;原创 2023-10-31 20:15:58 · 27 阅读 · 1 评论 -
Java面向对象:this关键字
1.this就是一个变量,可以用在方法中,用来拿到当前对象;2.用来解决对象的成员变量与方法内部变量名称一致时,导致访问冲突问题。this就是指向哪个对象,也就是拿到哪个对象。原创 2023-10-30 20:38:33 · 40 阅读 · 1 评论 -
Java面向对象:类与对象的注意事项
4.一个代码文件中,可以写多个class类,但只能用一个public修饰,且public修饰的类名必须成为代码文件名。2.类中定义的变量也称为成员变量(对象的属性),类中定义的方法也称为成员方法(对象的行为)6.如果某个对象没有一个变量去引用它,则该对象无法被操作,该对象会成为所谓的垃圾对象。5.对象与对象之间的数据不会相互影响,但多个变量指向同一个对象时就会相互影响。1.类名建议用英文单词,首字母大写,满足驼峰模式,且要有意义。*当堆内存中的对象没有被任何引用时,就会被判定为内存中的垃圾。原创 2023-10-30 20:08:26 · 64 阅读 · 1 评论 -
Java中的面向对象
一.好处:凡事找对象的编程套路,更加符合人类思维习惯,编程也变得更直观。2.方法,描述对象有什么功能,也就是可以对数据进行什么样的处理。1.变量,用来说明对象可以处理什么数据。public class 类名{二.对象就是一种特殊的数据结构。原创 2023-10-30 19:37:39 · 45 阅读 · 1 评论 -
Java案例:找素数
遍历2到该数一般的数据去判断是否有整除的数据,有则改变flag标记位的状体。*最终通过flag的状态判断是否是素数。*定义了flag标记位。原创 2023-10-28 21:34:51 · 36 阅读 · 1 评论 -
Java案例:抢红包问题
public static void start(int[] moneys){ //()中需要遍历整个数组。System.out.println("恭喜您抽中了红包"+money);i++){ //for循环。System.out.println("恭喜您抽中了红包"+money);=0){ //if条件句。原创 2023-10-28 19:36:18 · 120 阅读 · 0 评论 -
Java案例:打分,加密,拷贝
public static void printArray(int[] arr){} //不需要返回数值,因此用void。public static int[] copy(int[] arr){ //这个需要返回数值。原创 2023-10-23 21:54:57 · 44 阅读 · 0 评论 -
Java案例:打分,加密,拷贝
/对数组进行反转,把对数组进行反转的操作交给一个独立的方法去 完成。//再将定义的temp中的值赋给i,从而实现间接的转换。//再返回numbers的数值。3.将四位数字密码拆分成一个一个数字,存入数组中,遍历每个数字,先加密,后拼接。最后输入要加密的数组。原创 2023-10-23 20:39:16 · 57 阅读 · 0 评论 -
Java案例:打分,加密,拷贝
/返回数值,因为定义的是int类型的整数,所以求。//将scores[i]中的值甩给score。//将得到的数值赋给score。//再将数值赋给score[i]//定义最大值变量max。System.out.println("请输入第"+(i+1)+"个评委的分数:");//定义一个int类型的变量sum。if(max原创 2023-10-23 17:57:07 · 74 阅读 · 0 评论 -
Java_方法重载
比如:System.out.println();out是PrintStream类型。2.形参列表:必须不同(形参类型或个数或顺序,至少有一样不同,参数名不要求)java中允许同一个类中,多个同名方法的存在,但要求形参列表不一致。1.减轻了起名的麻烦。2.减轻了记名的麻烦。1.方法名:必须相同。3.返回类型:无要求。原创 2023-12-25 20:48:02 · 223 阅读 · 0 评论