Java知识点补充

时间:2021年1月26日 下午 晴
冷了好几天,可算是晴了,冬天晒太阳真舒服
复习Java发现有些知识点缺漏,来搞一篇文章记录记录
不定时更新^_^

如何打印出的内容不换行

System.out.println();是打印完内容然后自己换行
如果要使内容不换行,则可以用System.out.print();
即少了一个"ln"
也可以直接用System.out.println();来换行

方法重载的判决条件

第一:在同一个类中
第二:方法名相同
第三:参数类型或参数数量不同

类与对象

类的定义

构造一个类的思路:把对象的相同部分封装到类里面;
类的作用就是描述多个对象的共同特征和行为。
如图:在这里插入图片描述这里,下面四种玩具都是根据上面的玩具模型构造出来的,他们都有着玩具模型的所有特征,比如俩胳膊俩退,一个脑袋,然后有头发,那么这样,玩具模型就是一个类,下面的四个玩具就是由玩具模型所创造出来的四个不同的对象

对象的原理

定义一个类:Person
用它创建一个对象Person p = new Person();
其中,真正创建对象的只有new Person()部分,前面的Person p是声明一个Person类型的变量,然后把new Person();创建的对象的地址赋给p,然后通过p来引用这个定义的对象,所以说p还是变量,不过他引用了对象,所以我们也可称p对象

类的封装

什么是封装,为什么要封装?
就比如现实中的手机,手机制造厂商只需要把给用户用的那一部分展示给我们,而内部的制造原理,比如芯片,电池不需要暴露出来,用手机壳包装起来,我们构造一个类,也需要这样,把我们需要暴露出来的用private给封装起来,给需要暴露到外界的用public修饰。
比如:在这里插入图片描述把属性变量这里是phone中的memory(内存)设置为私有,然后写get和set方法,get用来返回memory,set用来设置memory

构造方法的重载

构造方法也可以重载,我们可以在创建对象的时候通过参数的传递来调用不同的构造方法来初始化对象

this关键字

java中this可以明确地访问一个类的成员变量,可以解决成员变量和局部变量名称冲突的问题,
当成员变量和局内变量重名的时候,我们可以用this.变量名来调用成员变量,如下:

上面用private修饰的是成员变量,下面红线标注的是局部变量,如果我们直接用memory调用的是局部变量,所以我们可以用this.memory来调用成员变量
我们可以用this来在一个构造方法中访问其他的构造方法
可以通过this(参数列表)来访问:
在这里插入图片描述这个东西有两点要注意,1.只能在构造方法中使用this()来调用其他构造方法,2.在构造方法中使用this调用只能位于第一行,而且一个构造方法只能调用一次其他的构造方法

垃圾回收

我们可以通过调用System.gc()方法来通知Java虚拟机立即进行垃圾回收,当一个对象在内存中被释放的时候,他的finalize()会被自动调用,因此我们可以通过重写finalize()方法来观察垃圾回收
即:在这里插入图片描述

static

static修饰成员变量

static作用:
static可以用来节省内存,比如我们创建一个类,他的每个对象的某一属性值都必须一样,那我们就不必把它定义成普通的成员变量,我们可以把它修饰成static(静态),这样我们每个实例都可以直接访问同一个的成员变量,而且用static修饰的不会跟着对象的创建而再在对象中创建新的变量,所有对象共用一个
static可以用来修饰所有对象共同且必须一模一样的属性或方法
如:
在这里插入图片描述通过类名.静态成员名来调用
不能用来修饰局部变量

static修饰成员方法

可以使我们创建的方法不必和对象绑在一起,即我们想在不创建对象的时候就可以调用某个方法,我们就可以用static来修饰这个方法
和static修饰成员变量的调用方式不同的是,我们这个有两种调用方式

  1. 直接类名.方法名()
  2. 通过类的实例对象来访问对象名.方法名()

static静态代码块

一般用在类的初始化上面,只在类加载的时候执行一次,往后不再执行
语法:
static{语句块}

单例模式

单例模式就是只允许我们创造的某个类只能有一个对象
比如我们创造现实世界中的太阳和月亮,只能有一个
有两种方式

  1. private修饰类的构造方法,然后在类中创建一个静态的而且是私有的类的对象。然后设置一个返回这个对象的静态方法。在这里插入图片描述
    外界可以直接通过get方法得到这个对象
  2. private修饰类的构造方法,然后在类中创建一个用public,final,static关键字修饰的对象在这里插入图片描述
    可以直接访问这个创建的对象,但是不能修改

final

final可以禁止外部对其修饰过的变量进行修改
有三个特性:

  1. final修饰的类不能被继承
  2. final修饰的方法不能被子类重写
  3. final修饰的变量(成员变量和局部变量)是常量,只能赋值一次

猜你喜欢

转载自blog.csdn.net/qq_45821251/article/details/113180072