java随笔2

Posted

tags:

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

类的高级概念

本章目标

1.理解访问修饰符

2.理解封装的概念和好处

3.理解类的静态成员

4.掌握静态初始化块和实例初始化块的用法

5.理解内部类的使用方式

第一访问修饰符

Public(公用)

Protected(受保护)

Private(私用)

没有访问修饰符

访问修饰符适用的五种分类

本类:可以访问public;可以访问protected;访问默认的;可以访问private

1同包类

1.1子类:可以访问public;可以访问protected;访问默认的;可以访问private

 

1.2非子类:可以访问public;可以访问protected;访问默认的;不可以访问private

 

2.不同包类

2.1子类:可以访问public;可以访问protected;不可访问默认的;不可以访问private

 

2.2非子类:可以访问public;不可以访问protected;不可访问默认的;不可以访问private

封装

Get set方法

Get***();访问器

Set***();修改器

封装的好处:

1.类的成员的变量可以成为只读或者只写的.

2.类可以对存储在其成员变量中的内容有一个整体的控制.

3.类的用户不需要知道类是如何存储数据的.

Static(JAVA中的关键字;意思为静态)

凡是static修饰的通用的特性:

1.与对象无关,属于类级别的操作

2.在加载期会有特殊操作

static修饰属性特点:

1.全类所有对象共享一个属性(属性在数据段的静态区)所以才有语法类名,属性名的方式进行操作,除非发现全类共享,否则变量不要设计为static,常量直接用public static final.

2.static修饰的属性的加载期(main方法运行之前)就被产生到内存的数据段的静态区中了.

static修饰构造方法:不能在构造方法修饰,因为是产生对象的与对象有直接联系,static是对对象无关的.

static修饰方法:

1.从调用上,static方法可以用类名进行调用,static的必须用对象进行调用

2.从实现上,static方法内部只能调用static的属性和行为,不能调用非static的属性和行为,但是非static方法都可以

3.从实现上,static方法内部不能用this.;super.

Static方法可以用类名访问,这个时候没有当前对象的存在

static方法在加载期会被优先加载,此时还没有加载非static的方法和属性,所以不认识它们也就不能调用

Static 方法没有办法直接调用非static方法或属性,还因为没有办法确定对象,古国能够在static方法中绑定上对象,还是可以调用的

Static修饰的方法都只跟类有关,与对象无关

适用方法:只有工具类(没有直接对象,不去改变被调用的类的属性和方法,直接调来使用)的工具方法,才设计为static

在方法中的初始化块

1.实例初始化块  {}

在语法上:初始化块就是一个没有方法申明的代码块

在作用上:对象进行初始化属性操作

适用环境:当我们产生对象的时候,会被自动调用从而初始化属性操作

由于在执行时机上,处于调用构造方法会自动调用初始化块,作用也和构造方法重复都是初始化,会被构造方法中的代码或者属性直接赋值的效果覆盖,所以这个语法很少使用了,唯一的作用就是面试题

Static{}静态初始化块,在加载类的时候被自动调用,一个类被加载一次,所以这个初始化块也只运行一次.对于项目中,很多在运行之前要做的准备动作,都应该写在静态初始化块当中

2.属性

3.构造

4.方法

内部类

在一个类的内部定义的类,称为类部内

特点:

1.独立的类有一个class文件

2.同样需要编译器

3.同样可以产生对象

位置不同的分类:

1.在一篇类中再定义一个类是平行关系的就叫作成员类

语法:

1.1成员内部类是可以使用访问修饰符修饰的

1.2内部类中可以有属性\构造\行为

1.3但是不能有静态属性和静态方法

1.4编译后,也会产生独立的class的文件叫外部类名$内部类名.class

1.5使用时在外部,首先保证内部类是访问修饰符允许的,然后产生外部对象,最后利用外部对象.new的方式产生内部类对象

1.6在外部内部类中,语法相似,this.new产生外部类对象

1.7内部类的发方法中可以访问外部类的属性或方法

Public static class name(){}public class name1{}中属于静态内部类是成员内部类的一种特列(可以有静态属性和静态方法,只能访问外部类的静态属性和方法),在外部首先保证内部类是访问修饰符允许的,然后利用new外部类类名.内部类类名

2.局部内部类

定义在方法内部

语法:

2.1class 前面没有访问修饰符

2.2内部类中可以有属性\构造\行为(但不能有静态属性和方法)

2.3可以访问外部类的属性和方法

2.4编译后,也会产生独立的class的文件叫外部类的类名$数字+内部类名.class

2.5使用:只能在该方法内部使用且只能在定义语句后面用.

2.6局部类中的所以成员,访问修饰符无意义

2.7产生内部类对象后,可以调用内部类中所以属性和行为,不受访问修饰符的限制

匿名内部类(是局部内部类的特列,只是没有类名)

语法new Object(){}.innerMethod();

1.在产生对象的同时,给该对象定义增加的属性和行为

2.可以书写属性\方法\重写父类的方法,不能写构造,没类名

3.可以访问外部类的属性和方法

4.编译后,也会产生独立的class的文件叫外部类的类名$数字.class

5.使用:只能用这一次.

 

以上是关于java随笔2的主要内容,如果未能解决你的问题,请参考以下文章

java随笔1

Java范型随笔

java,Socket,NIO随笔记录

反射随笔:反射包的结构

#随笔之java匿名内部类

Java基础随笔1