*1.内部类可以访问外部的成员,但外部类不能访问内部的成员。 *2.外部类的修饰符只有两种:public和默认,而内部类的修饰符可以是public,protected,默认,private *3.内部类成员只有在内部类的范围之内是有效的。 *4.用内部类定义在外部类中不可访问的属性。这样就在外部类中实现了比外部类的private还要小的访问权限。
* 狭义的封装:将属性私有化,然后提高公有的getter和setter方法以供访问。 * 步骤1:将属性私有化,将修饰符修改private的 * 步骤2:提供公有的访问方法:getter方法:取值,setter方法:赋值 * 步骤3:添加访问权限控制 */ public class Student { private String name; private int age; private String className; pub...
自定义异常 * 自定义异常:如果JDK中异常类型无法满足程序需要。 * 步骤: * 1.编写自定义异常类:继承Exception或RuntimeException * 2.编写构造方法,继承父类的实现 * 3.实例化自定义异常对象 * 4.使用throw抛出 例: public class SexException extends Exception{ public SexException(String message){ super(mes...
2.上转型对象可以操作子类继承或重写的成员变量和方法 3.如果子类重写了父类的某个方法,上转型对象调用该方法时,是调用的重写方法。 instance of运算符判断对象是否为指定类型的实例。如果是指定类型的实例返回值为true,否则返回false * 语法: 对象 instanceof 类型 * 防止在类型转换时出现ClassCastException异常。 *...
子类可以继承父类的非私有的属性和方法。 子类不能继承父类的构造方法。 java中继承是属于单继承,一个类只能有一个父类,但是一个父类可以有多个子类。 C++中可以存在多继承,java可以通过接口实现多继承。 方法重写: 方法的重写(override):一般发生在父子之间,子类重写的方法应该满足以下条件 ...
内存结构。 内存分析 栈: 1.每个线程私有,不能实现线程间的共享! 2.局部变量放置于栈中。 3.栈是由系统自动分配,速度快!栈是一个连续的内存空间! 堆: 1.放置new出来的对象! 2.堆是一个不连续的内存空间,分配灵活,速度慢! 方法区: 1.被所有线程共享!
package关键字主要用于声明包。 java中的包:类似文件夹 *作用:1.分门别类进行存放数据,方便分类和管理。2.避免命名冲突。 *包的命名规范:所有字母都是小写,多级包名之间利用.进行分割 * 常见命名:顶级域名.一级域名.项目名.功能包名 * 顶级域名:com(company)公司,cn(china):中国大陆 ,hk:中国香港 ,tw:中国...
*5.一个非抽象类实现实现接口,必须重写接口中的抽象方法,抽象类实现接口可以重写部分抽象方法。 *6.一个类只能继承一个父类,但可以实现多个接口 * *如果一个类继承父类并实现了接口如何编写? * [修饰符] class 类名 [extends 父类名 implements 接口名1,接口名2..]{ ...
throws:在声名方法时声明该方法存在异常。 throw:在方法内部抛出异常。 1.位置不同: throws在方法声明名用于声明该方法存在的异常,throw在方法内部用于抛出异常。 2.类型不同: throws后边跟的是异常类型,throw后边的异常对象 3.作用不同: throws的作用是告知方法的调用者该方法存在某种异常类型需要处理, ...
Static、this、super关键字。* 1.使用static关键字修饰的成员变量(属性):全局变量或类变量*成员变量和全局变量的区别:* a.在计算机内存中保存的位置不同:* 成员变量保存在堆中,全局变量保存在方法区 * b.保存的份数不同 * 成员变量每new一次都开辟空间,保存多份。 * 全局变量只有1份 * c.访问方式不同 *...