【Java笔记】Java开发实战经典 - 第五章

===第五章 面向对象(基础篇)


面向对象的程序设计有封装性、继承性、多态性3个主要特征;
类是抽象的代表共性,对象是具体的个体,属性是描述对象的信息,方法是对象的行为;
类由属性和方法组成,属性就是变量,方法就是函数;
public 表示公共的,加上这个修饰的类或属性,可以在同一个包或者别的包里面访问;
private 表示私有的,加上这个修饰的类或属性,只能在同类里访问,同包和别的包不能访问;
protected 表示保护的,加上这个修饰的类或属性,只能在类和同包访问,别的包不能访问;
对象名称在栈内存中保存,对象的具体内容保存在对应的堆内存中;
java.lang.ArrayIndexOutOfBoundsException: 3 数组下标越界;
Exception in thread "main" java.lang.NullPointerException 使用了未实例化的对象;
对象的声明和实例化是分开进行的;
引用传递就是将一个堆内存空间的使用权给多个栈内存空间;
一个栈内存空间只能指向一个堆内存空间;
Java本身提供垃圾收集机制 GC,不定期释放对象不使用了的内存空间;
类中的全部属性都要封装,只要是被封装的属性,必须通过 setter 和 getter 方法设置和取得;
构造方法没有返回值;
匿名对象只在堆内存中开辟空间,而不在栈内存中引用;
String用"=="比较的是内容和地址;
String用"str1.equals(str2)"比较的是内容;
一个字符串就是一个String类的匿名对象;
一个字符串已被一个名称引用,再有相同字符串声明时,不会重新开辟空间,会继续使用已经开辟好的堆内存;
用new连续声明对象时最后开辟的空间有效,先开辟的都变为垃圾空间;
字符串的内容一旦声明则不可改变;
使用this调用构造方法必须也只能放在构造方法的首行;
this调用构造方法时一定要留一个构造方法作为出口;
构造方法间互相调用时一般将无参构造方法作为出口;
call to this must be first statement in constructor 调用this()只能放在构造方法的首行;
non-static variable name cannot be referenced from a static context 不能调用非static属性;
non-static method demo() cannot be referenced from a static context 不能调用非static方法;
static不能调用任何非static内容;
static方法可以由类名称直接调用;
System.exit(1); 直接退出程序;
代码块可以分为普通代码块、构造块、静态代码块和同步代码块四种;
构造块优先于构造方法执行;
静态代码块优先于主方法执行,在类中定义的静态代码块优先于构造块执行;
不管有多少个对象产生,静态代码块只执行一次;
Demo() has private access in Demo 构造方法被私有化,无法实例化;
只要将构造方法私有化,就可以控制实例化对象的产生;
类的定义可以嵌套,即外部类中可以定义内部类;
内部类的唯一好处就是可以方便的访问外部类中的私有属性;
用static声明的内部类变成了外部类,但是用static声明的内部类不能访问非static的外部类属性;
non-static variable info cannot be referenced from a static context 不能访问非static外部类属性;
首先要找到外部类实例化对象,才能通过该对象实例化内部类对象;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值