java之类

类是引用类型。

类的修饰符有public,final,abstract。

类中包括,成员变量(field)可以由public,protected,private中任意一个修饰,static,final可以组合修饰。

类中包括,成员方法,可以由public,protected,private中一个修饰,abstract和final其中一个修饰,static组合修饰。

其中static是静态,是类所有的,是所有类的对象所共有的部分,不属于任何一个对象。调用方法为类名.xxx。静态成员不能直接访问非静态成员。

对于成员变量,一般命名小写,private修饰。然后添加public的setXxxx和getXxx方法。

类中包括,构造器。修饰符为public,protected,private中其一。没有返回值,和类名一模一样。

对象名存储在栈中,是对象的引用,也就是指针变量。对象存储在堆中。当将对象名赋值为null后,则对象失去引用,将被垃圾回收。

类中的this,表示了当前对象。一般可以省略。静态方法不可以使用this。成员方法中调用类的其他成员时,默认添加this.。
当成员方法中存在于成员变量同名的局部变量时,此时成员变量需要加this。

当类的成员方法返回this时,此时该方法可以多次连续调用。

方法不能独立定义,必须定义在类里。

方法只能属于类或类的对象。

不能直接执行方法,类中的直接调用,是省略了this.或者类.。

java中的参数传递,只有值传递。对于引用类型的参数,同样是传递指针变量的值,即复制了一个变量名,至于变量名所引用的对象,则还是堆里的唯一一份。所以值类型和引用类型都是值传递,导致不同结果的本质原因还是值类型和引用类型的区别。

可以定义形参个数可变的函数。但是只能放在最后,也就是只能存在一个。其本质就是一个数组,所以调用此类方法,既可以传入多个类型相同的变量,也可以传入一个数组。

1 public static void test(int a,String ... books){
2 for(var x:books){
3 System.out.println(x);
4 }
5 }
View Code

递归方法是指调用自身的方法。。递归一定要向已知方向调用。

方法重载,函数名相同,参数不同。

类的生命周期:类加载、类验证、类准备、类解析、类初始化。

成员变量包括类成员变量即static,和实例成员变量。

类成员变量的作用域是从类准备到类销毁,与类共存。

实例成员变量的作用域是从实例存在到结束。与实例共存。

成员变量可以不进行初始化。由类的构造函数进行初始化。没有构造函数,java提供默认构造函数。初始化与数组的默认初始化相同。

局部变量分为形参,不用初始化,作用域为方法开始到方法结束。方法局部变量,定义在方法中,作用域为定义开始到方法结束,必须初始化。代码块局部变量 ,作用域为定义开始到代码块结束,必须指定作用域。

局部变量可以与成员变量名字相同,这时,局部变量将覆盖成员变量。如果要访问成员变量,则需要this.或者类.。

当系统第一次使用某个类时,会加载·这个类,准备阶段,会为该类的类变量分配空间并指定初始值。

局部变量定以后,系统并不会为之分配内存空间,只有在初始化后,系统才分配。对于基本类型的局部变量,直接压入所在方法的栈中,对于引用类型的局部变量,则将变量值压入栈,通过变量值(地址)引用到该变量实际的引用对象或者数组。

因此局部变量不需要垃圾回收。随着方法或者代码块的结束而结束。

局部变量的作用域越小越好,提高程序的内聚性和节省内存

如果一个java源文件里没有public类,则java源文件可以任何名字。如果有public类,则只能为此类的名字。

封装的目的是为了隐藏实细节,暴露访问方法。从而可以保护成员变量不被非法操作,可以对数据进行检查。提高了代码的可维护性。

需要将对象的成员变量和实现细节隐藏起来,不允许外部直接访问。

把方法暴露出来。

private:只有类内部可以访问。

default:包内可以访问。

protected:包内访问,不同包的子类访问。

public:公开访问。

经成员变量定义为私有,并且通过各自对应的setter和geter方法操作和访问他们,gettee和setter合起来就变成了属性,如果所有属性都这么做,那么这个类就是符合javaBean的规范类。

只有getter方法为只读属性

高内聚:尽可能把模块内部数据、功能实现细节隐藏在模块内部独立完成,不允许外部直接干预。

低耦合:仅暴露少量的方法给外部使用。

猜你喜欢

转载自www.cnblogs.com/tomato190/p/12321296.html
今日推荐