什么是类?
描述一个对象的。
什么是对象?
真正的一个实体。
类和对象就是为了进行面向对象编程。
//定义类
class Student//类名 大驼峰{
}
每一个类都可以有main方法
类如何产生对象呢?
通过new关键字实例化对象。
可以实例化多个对象,但不能有无限个,因为堆有大小,内存有限。
通过引用. 可以访问成员属性和方法。
this引用
当形参与对象的属性变量名相同时,对其进行赋值会优先使用局部变量,并不会改到对象。
在局部变量前加this:this代表当前对象的引用。
方法中会有隐藏的参数(类名+this)一般不写。
当出现加或者不加都可以时,要习惯使用this。
this只能在“成员方法”中使用。
这些成员变量怎么初始化的?
通过对象引用. 号来初始化?
首先局部变量必须初始化。
成员变量在没初始化之前每个变量都有一个默认值,对引用类型如String,默认值是null,其余的简单类型都是对应的0值,但是Boolean类型的默认值是false。
什么是构造方法?
首先他是一个方法,但无返回值,且方法名和类名一样。
什么时候会触发调用构造方法?
实例化对象时。
不带参数的构造方法的问题是:当没有提供任何构造方法的时候,会默认有。但是一旦写了任何一种构造方法,他都不会存在了。
封装
对于所有面向对象的语言来说,有三个比较重要的特性:
封装 继承 多态
从代码层次上如何实现封装?
有private修饰,此时只能在当前类中使用。
可提供公开的方法(被public修饰的,不管在哪里,都是可以被访问的)来访问。
一般情况下,我们建议:
1.成员变量定义为private(此时就需要重写所有的set和get方法-实则为标配,不然怎么对成员变量赋值)
2.成员方法定义为public
具体还要根据实际情况来应用
什么是包?
简单来说,其实就是一个文件夹。通过创建文件夹来分类。换句话说,现在你有很多的Java文件,那么你怎么划分这些Java文件?
肯定会分类划分,具体操作是不是就是建立各种分类的文件夹。
*为导入了util这个文件夹底下所有的类。
自定义包名:
1.全是小写
2.域名的逆置写法 eg www.baidu.com
static
此时的业务场景下,大家都在同一个班,只要有一份就行了,不要在每个对象当中都去表示。
如果一个成员变量被static修饰以后,那么此时这个成员变量就不属于这个对象了。
那么这个静态的成员变量去哪了?
静态的成员变量不依赖于对象。
可以就地初始化,也可以通过静态代码块初始化。
构造块执行先于构造方法,可以初始非静态成员。
静态代码块只能初始静态成员。
static只能修饰类变量,不能修饰局部变量。
总结:静态代码块优先被执行,其次是实例代码块,构造方法,且静态的只执行一次(因为类只会被加载一次)。