java中的基础知识的总结

一、静态成员函数

1.只可访问静态成员变量。

2.无法访问非静态成员变量。由于在调用静态成员方法时,并不会将对象的引用传递过去,因此不能访问对象的非静态成员变量

静态成员方法访问方式:“类名.静态方法”,如果可以访问“非静态成员变量”,那么编译器也就无法确定:访问的“非静态成员变量”是属于哪个对象,在内存中的位置,甚至根本就还没有对象为避免这种情况的出现,编译器一定不会允许“静态成员方法”访问“非静态成员变量”

                                                                                                                                                                                  

二、静态成员变量

静态成员变量既可以访问静态成员方法,也可以访问非静态成员函数。

静态成员变量:   位于“数据区”,无论多少个对象该变量在内存中都只有一份

非静态成员变量:位于“堆空间”,每new一个对象创建一份,因此有多少个对象该变量在内存就有多少份


三、java中public private 等访问权限设置 

1、public:对所有用户开放,所有用户都可直接调用
2、private:私有。除了class自己之外,任何人都不可直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可使用。
3、protected:对于子女、朋友来说,就是public的,可自由使用,无任何限制;而对于其他的外部class,protected就变成private。(同一个包中的类,若不在同一个包中,必须为其子孙类才可使用

4、默认:默认可以称为friendly,但是java语言中是没有friendly这个修饰符的,这样称呼应该是来源于c++。默认的访问权限是包级访问权限

作用域        当前类    同一package   子孙类     其他package 
public            √                 √                   √               √ 
protected      √                 √                   √               × 
default         √                 √                    ×               × 
private         √                  ×                    ×               ×

补充说明:
       1.每个编译单元(类文件)都仅能有一个public class 
       2.public class的名称(包含大小写)必须和其类文件同名。 
       3.一个类文件(*.java)中可以不存在public class。 
        如果我们在某个包内撰写一个class,仅仅是为了配合同一包内的其他类工作,并且我们不想再为了撰写说明文档给客户(不一定是现实意义的客户,可能是调用这个类的类)看而伤脑筋;或者有可能过一段时间之后会彻底改变原有的做法,并以全新的版本代替旧版本,这种情况下一般会默认。
       4、class不可以是private和protected

四、 抽象方法

抽象方法形如abstract void f();即没有函数体,定义抽象方法的类,编译器会强制要求其加上abstract修饰符。

抽象类不可实例化,如果其子类未实现其中的抽象方法,其子类也为抽象类,直至某个继承层次实现为止。

抽象类可以没有抽象方法,但有抽象方法的一定是抽象类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值