Java笔记 一 函数、类、对象、封装以及静态注意事项

1、dos命令行,常用命令
dir:列出当前目录下的文件以及文件夹
md:创建目录
rd:删除目录
cd:进入指定目录
cd…:退回到上一级目录
cd:退回到根目录
del:删除文件
exit:退出dos命令行

2、主函数作用:
程序的入口、被虚拟机调用、保证程序的独立运行

3、设置classpath作用:
没有设置,就在当前目录下查找执行.class文件,否则,JVM就在指定的目录下执行.class文件。

4、break和continue:
break:作用在选择和循环结构;单独使用时下面不能有语句,因为执行不到(出现语句执行错误);(嵌套时)跳出当前循环;
continue:作用在循环结构;单独使用时下面不能有语句,因为执行不到(出现语句执行错误);结束本次循环,继续下次循环;

5、for和while区别:
for和while可以互换;如果需要一个变量控制循环,且该变量只作为循环增量时,while循环后该变量还存在,而for循环的变量只存在于该循环体中,出了循环便不复存在。

6、if和switch的应用:
if: 对具体的值进行判断;对区间判断;对布尔类型的表达式进行判断
switch:对具体的值进行判断;值往往是固定的几个数;
如果对固定的几个数进行判断,建议使用switch,因为switch将答案装载到内存中,效率相对高一些。

7、函数:
定义在类中,具有特定功能的独立代码块;对功能代码进行封装;提高代码的复用性;定义函数时,函数结果应该返回给调用者,交由调用者处理;可以在内部调用其他的函数,但不可在内部定义新的函数;

8、内存划分:
寄存器;本地方法区;方法区;栈内存;堆内存。
栈内存:存储的都是局部变量,而且变量所属的作用于一旦结束,该变量就会自动释放(局部代码块,限定局部变量的生命周期)。
堆内存:存储的是数组和对象(数组也是对象),凡是new创建的都在堆中;每一个实体都有对应的首地址值;堆中的变量都有默认的初始化值,整型为0,小数为0.0或0.0f,boolean为false,char为\u0000.

9、面向过程:强调过程(动作);面向对象:强调对象(实体);
特点:面向对象作为一种思想,符合人们的思考习惯;面向对象的出现,将复杂问题简单化;让曾经在动作中的执行者,变成了对象中的指挥者。

10、类与对象的关系:
用Java语言对现实生活中的事物进行描述,并通过类的形式体现。对事物进行描述通常关注两点:属性和行为。对象是该类事物实实在在存在的个体。总结而言,类是事物的描述,对象是该类的实例,并通过new来创建。通过 对象.成员名 来使用对象中的内容。

11、成员变量与局部变量的区别:
(1)成员变量定义在类中,整个类都可以访问;局部变量定义在函数、语句、代码块中,只在所属的区域有效。
(2)成员变量存在于堆内存的对象中;局部变量存在于栈内存的方法中。
(3)成员变量随着对象的创建而存在,随着对象的消失而消失;局部变量随着所属区域的执行而存在,随着所属区域的结束而释放。
(4)成员变量有默认初始化值;局部变量没有默认初始化值。

12、封装
隐藏对象的属性和实现细节,仅对外提供公共的访问方式。最小的封装体是函数,类也是封装体
特点:便于使用、隔离变化、提高安全性和复用性。
原则:将不需要对外提供的内容都隐藏起来;把属性都隐藏(使用private关键字),提供公共方法对其访问(set和get方法)。
private:作为一种权限修饰符,用于修饰成员(不是局部);私有的内容只在该类中可以被访问;
注意:私有就是封装,只是封装的一种表现形式而已,只要该内容不被外界访问到,封装不是私有。

13、构造函数
特点:函数名与类相同 ;不用定义返回值类型;没有具体的返回值;
作用:给对象初始化。(创建对象时必须给对象初始化,有默认的空参数构造函数)
注意:默认构造函数的特点;多个构造函数以重载的形式存在。
构造函数与一般函数的区别:
(1)构造函数,对象创建时,就会调用与之对应的构造函数进行初始化;一般函数,在对象创建以后,需要该函数功能时才会调用。
(2)构造函数,对象创建时,会调用且只调用一次;一般函数,对象创建后,可以调用多次。

14、this关键字
(1)当成员变量与局部变量重名,可用this来区分:this.name=name;this代表当前对象,就是所在函数所属对象的引用;哪个对象调用了this所在的函数,this就代表哪个对象。
(2)在构造函数中,可用this调用另一个构造函数,且必须放在构造函数的第一行,因为初始化动作要先执行:this(name);两个构造函数不可互相调用,避免栈溢出。
(3)如果在方法中用到了当前对象,就可以用this来表示。

15、static关键字
(1)作为一个修饰符,用于修饰成员(成员变量和成员函数)
(2)static修饰的成员被所有对象共享
(3)static优先于对象存在,因为static的成员随类的加载就存在了(为什么静态方法不能调用非静态的变量,因为没有对象)
(4)static修饰的成员褚克义被对象调用外,可以直接被类名调用: 类名.成员
(5)static修饰的数据是共享数据,对象中存储的是特有数据
(6)成员变量也叫实例变量;静态变量也叫类变量

16、成员变量与静态变量的区别
(1)两个变量生命周期不同
成员变量随着对象的创建而存在,随着对象的被收回而释放;静态变量随着类的加载而存在,随着类的消失而消失。
(2)调用方式不同
成员变量:对象名.成员名;静态变量:类名.成员名和对象名.成员名两种调用方式
(3)别名不同
成员变量也叫实例变量,静态变量也叫类变量。
(4)存储位置不同
成员变量存储在堆内存的对象中,所以也叫对象的特有数据;静态变量存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据。

17、静态使用的注意事项:
(1)静态方法只能访问静态成员,非静态即可以访问静态,又可以访问非静态
(2)静态方法中不可以使用this或者super关键字
(3)主函数是静态的,如果在类中定义的方法是非静态的,需要通过 匿名对象.成员名 来访问,主函数不可直接调用该方法
(4)在类中定义了静态变量和成员变量,静态变量前省略类名,成员变量前省略this。
类名.静态变量;this.成员变量;

18、主函数特殊之处:
(1)格式是固定的;
public:权限是最大的;
static:(虚拟机调用主函数是)不需要对象的,直接用主函数所属类名调用
void:主函数没有具体的返回值(虚拟机要返回值没有用)
main:函数名,不是关键字,只是一个JVM识别的固定的名字
String[ ]:主函数的参数列表,是一个数组类型的参数,而且元素都是字符串类型
(2)被JVM识别和调用

19、什么时候使用静态?
(1)成员变量
当分析对象中所具备的成员变量的值都相同时,该成员变量就可以被静态修饰;只要数据在对象中都是不同的,就是对象的特有数据,是非静态的;如果是相同的数据,对象不需要做修改,只需要使用即可,不需要存储在对象中,定义成静态的。
(2)成员函数
函数是否用静态修饰,就看一点,该函数是否有访问到对象中的特有数据;简而言之,要看该函数是否需要访问非静态的成员变量,如果需要,就将之定义成非静态的,否则,可以将之定义成静态的。创建一个非静态方法而没有访问对象的特有数据,是没有意义的。

20、静态代码块、构造代码块和局部代码块
(1)静态代码块:随着类的加载而执行,并且只执行一次;用于给类初始化; static { }
(2)构造代码快:给所有对象进行初始化(初始化结果相同),构造函数给对象进行针对性的初始化(初始化结果可能不同);在类中,代码仅用 { } 括起来
(3)局部代码块:限定局部变量的生命周期
(4)静态代码块先执行,如果有对象,构造代码块和构造函数再执行。

21、数组工具类
提供一系列与数组操作有关的方法 ,如果所有的方法都没有访问类的特有数组,可将方法定义成静态的,构造函数也可以定义成私有的,这样就无须创建对象(避免浪费空间),直接通过类名访问方法。

22、文档注释
只向外提供公有的或受保护的成员信息,私有的不会提供,且针对公共的或受保护的类。使用javadoc实现。比如:javadoc -d 文档目录 -author -version 类名.java(类名同文件名)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值