您的位置:首页 > 编程语言 > Java开发

2019-03-28 java基础 浅谈封装,继承,多态,,还有一点点类与对象,垃圾回收

2020-04-23 12:19 423 查看

1.封装,,,封装的载体是类,,类里面有属性和方法,,把类的内部影藏起来 这就是封装的思想,,
封装的思想保证了类内部的数据结构的完整性,用户不能轻易的直接操作次数据结构,只能执行类允许公开的数据。这样就避免了外部操作对内部数据的影响,提高了程序的维护性

2.继承
继承主要利用特定对象之间的共有属性,例如平行四边形是四边形,正方形长方形也是四边形,,但不能说四边形式平行四边形,,,,父类就相当于定义了一个抽象的四边形类,,子类平行四边形继承了父类的方法和属性 然后还有了自己特殊的属性和方法。
一个继承体系中 它可以使父类同时还可以使其他类的子类 例如 图形类—三角形 ----等腰三角形

3.多肽
多肽是在继承的基础上。。
一般父类都是抽象类 然后子类继承
例如: 绘制图形的类 然而没人知道他会绘制什么图形,,所以来一个子类 继承然后有自己的特殊属性方法—当绘图时 简单的调用父类的方法即可绘制出任何想要的图形,这就是多肽的思想
抽象类不可以实例化对象。在多态的机制中 父类通常会被定义成抽象类,在抽象类中给出一个方法的标准,而不给出实现的具体流程

类与对象

1.不定长参数
声明方法时 如果有若干个相同类型的参数,可以定义为不定长参数
例如
public void xll (int…x){
}

2.构造方法
构造方法与类名相同,每当类实例化一个对象时,类都会自动调用构造方法。
构造方法的特点如下:
1.构造方法没有返回类型,也不能定义为void
2.构造方法名称要与类名一样
3.构造方法的主要作用是完成对象的初始化工作,它能把定义对象的参数传给对象成员
例:
class Book{
public Book{
}
}
在构造方法中可以为成员变量赋值,这样当实例化一个本类的对象时,相应的成员变量也将被初始化。
如果类中没有明确定义构造方法,则编译器会自动创建一个不带参数的默认构造方法。
除此之外,在类中定义构造方法时,还可以为其添加一个或者多个参数,即有参数的构造方法。
如果类中有一个有参数的构造方法,则编译器不会添加一个不带参数的构造方法

构造方法可以用private修饰,私有构造方法,私有构造方法无法用new创建 ,如果要创建只能通过定义一个static方法,并调用该静态方法生成该对象
例如

public class BookTest{
private BookTest{
}
static BookTest xll(){
sysytem.out.println("通过调用静态方法创建对象");
return new BookTest();
}

public static void main(String[] args){
BookTest book = BookTest.xll();
}

}

垃圾回收,,,
每个对象都有生命周期,当对象生命周期结束时,分配给该对象的内存地址会被回收。

首先需要了解何种对象会被java虚拟机视为垃圾。主要包括以下两种情况
1.对象引用超过其作用范围,这个对象将被视为垃圾
2.将对象赋值为null;

虽然垃圾回收机制已经很完善,但垃圾回收器只能回收那些由new操作符创建的对象,如果某些对象不是通过new操作符在内存中获取一块内存区域,这种对象可能不会垃圾回收机制识别,所以在java中提供了一个finalize()方法。这个方法时Object类的方法,它被声明为protected,用户可以在自己的类中定义这个方法。如果用户在类中定义了finalize()方法,在垃圾回收时会首先调用该方法,在下一次垃圾回收动作发生时,才能真正回收被对象占用的内存。

由于垃圾回收不收人控制,具体执行时间也不确定,所以用System.gc()方法强制启动垃圾回收器,这就相当于打120一个道理,告知垃圾回收器进行清理。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
xll852507501 发布了6 篇原创文章 · 获赞 0 · 访问量 259 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐