第四周学习总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四周学习总结相关的知识,希望对你有一定的参考价值。

一、JAVA的垃圾回收机制

垃圾回收机制是回收没有被变量所指向的对象。

垃圾回收机制由虚拟机执行,虚拟机会在比较空闲的时候进行垃圾回收,程序员没法干预。

但是程序员可以通过调用system.gc( )的方式加快垃圾回收的速度。

补充:return的使用 除了在有返回类型中返回值  还可以在void无返回类型中返回主方法

了解:Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。

二、构造方法

构造方法的格式:

public class student{

       public student(){

     }

}

构造方法 是一个特殊的方法

方法名必须与类相同 且无返回类型 其作用是产生对象

构造方法会初始化对象

构造方法的作用:

1.为对象分配空间

Student a=new Student( );

2.初始化成员变量

3.返回创建对象的地址

(成员变量是随对象初始化而初始化 静态变量是随类的加载而初始化)

如果一个类没有定义构造方法,那么虚拟机会自动分配一个无参构造方法

但是如果一个类定义了构造方法 那么默认的无参构造方法就会消失 除非再次定义 否则不能使用

 

三、形参与实参

在方法中,直接使用变量名,会优先使用形参(本质是局部变量),局部变量如果不存在则使用成员变量或静态变量。

this.属性名 使用的是成员变量

 

四、继承

类是对象的抽象 父类是子类的抽象 子类继承父类

继承的优点:

1.代码的重用

2.父类的属性和方法可用于子类

3.可以使设计应用程序变得更加简单

4、子类可以基于父类扩展更多属性和方法

继承的使用原则:

观察要使用的类,确定它们的共同和特有的特征(属性)、行为(方法);

提取共性迁往父类。便于子类进行方法和属性的重用。

对于不同的特征和行为,在子类里可以重新定义或扩展。

(补充,快捷键保存 ctrl+s,eclipse里文件带有*是没通过编译(未生效,未产生class文件))

在java中,一个类只能有一个父类,一个类不能同时继承两个或多个类(比如 object类,Human类,man类。Human继承的是object类,man继承的是human类,但是man不能再继承其他类。 );

所有类的根类都是object;

 

五、GUI

组件:

1.jframe 窗体

2.jpanel 面板 

面板边框颜色的设置

Border bo1 = BorderFactory.createLineBorder(Color.yellow);

jp1.setBorder(bo1);

3.jtabbedpane 标签面板

3.jtextfield 文本框   

4. jbutton  按钮 

5.jradiobutton 单选按钮  buttongroup  按钮组  通过按钮组可以实现只能选一个按钮的效果

6.checkbox 复选框

7.jcombobox 下拉框  增加内容 jtxt1.addItem("在线");

8.Jlabel 标签    包括图片也是标签的一种 Jlabel a=new jlabel(new imageicon(“img/图片1.jpg”));

图片的裁剪

Image img=new imageicon(“img/图片1.jpg”).getimage();

img=img.getscaledinstace(300,300,1);

作为背景图的大图片应该被放在最后

 

窗体基本设置:

构造方法中:

this.setlayout(null);  先设置绝对布局  

…………………………

 

中间加入各种组件

 

…………………………

this.setsize(x,y); 设置尺寸

this.setlocationrelativeto(null);  设置位置

this.setdefaultclosedopreation(3);默认关闭窗体

this.setvisible(true); 设置可见性

 

补充:当出现比如标签加文本框的这样一个组件组时,组合后的类继承文本框也可以,继承标签也可以。但一般继承文本框,因为我们实际使用中

会以文本框为主,标签只是提示,没有进一步使用价值。

 

六、toString方法的重写

设a是一个Student类的对象

平时所见system.out.println(a);其实默认是:system.out.println(a.toString());  (如果a不是对象这一类的引用类型,就打印具体指,否则打印地址);

直接打印对象的话,打印的是一个内存地址。

我们如果要打印对象的具体值,那么就应该在对象a的类中重写toString()方法;

 

补充:在出现引用类空指向null时,使用null操作一般都会报错,然而打印null却不会。原因也是因为默认system.out.println(a.toString()); 打印的是地址,而地址反馈为空指向。

 

七、静态变量和静态方法的加载时机

静态变量和静态方法是随着类的加载而加载的,因此它们是在成员变量和成员方法(它们会在对象产生时加载)之前就加载的,此时成员变量和成员方法并未产生,因此静态方法无法调用成员方法或属性。

 

八、父类、子类的关系

技术分享

补充:尽量不要在一个文件定义多个类,因为杂乱不好找,而且一个文件里有了一个public类以后,就不能再定义public类了,也就不方便使用了。

九、java.lang 包

java.lang包里的类可以直接使用 不用导入

比如常见的 system.   比如 产生随机数的 Math.      等等                  

math.random( )表示产生0-1的随机数,可以产生0,但不会产生1.(可能是小数,也可能是整数)

那么 math.random( )*100就是产生0—100的随机数了;

产生60至100的随机数则是60+math.random( )*40了  如果要产生整数 那么就在前面强制转换(int)。

 

十、final关键字

1.final修饰变量——表示变量值不能修改

2.修饰类——表示类不可以被继承

3.修饰方法——表示方法不能被重写

4修饰对象——表示对象所指向的内存地址不能被修改,也就是说该变量不能指向别的对象,但是可以修改其属性值。              因为对象是引用类,对象也就是一个地址指向,修饰对象也就是修饰对象的地址指向,所以不能修改。

十一、访问修饰符

4个访问修饰符分别为                    public            protected           默认(无修饰符)        private

同一类中是否可以使用                     可以                   可以                     可以                 可以

同一个包中是否可以使用                  可以                   可以                     可以                 不可以

不同包的子类能否使用                     可以                   可以                    不可以                不可以

其他类能否使用                              可以                  不可以                  不可以                 不可以 

十二、封装

封装是指按照信息隐藏原则,将信息组织在一起。

封装的特点:1.信息的集合 2.信息的隐藏

封装的通常表现:父类中属性使用private修饰符修饰  如private name; private age;

那么理论上说,其他任何类(包括子类)都没办法访问到这个属性

但我们可以通过在这个父类设置两个方法set 和 get,然后在其子类里调用这两个方法 实现私有属性的调用和修改。

私有属性和公有属性的区别:

1.私有属性 可以通过单独去掉set或单独去掉get方法,将属性设置为只读或只写属性。公有属性无法实现

2.私有属性可以在set方法设置之前,做一些合理性的验证  比如年龄不能为负或大于两百,从而保证属性值的合理性。公有属性无法实现

十三、this关键字和super关键字

this.age

super.age

this()

super()

有些抽象 就不多描述了

  

以上是关于第四周学习总结的主要内容,如果未能解决你的问题,请参考以下文章

20145301第四周学习总结

java第四周学习总结

第四周学习总结

JAVA 第四周学习总结

20191320《信息安全导论》第四周学习总结

20165316 第四周学习总结