JAVA学习笔记-03
面向对象其实是思考的一种思想。以前的是面向过程
面向过程:强调的是功能的行为。也就是强调的是动作
面向对象:将功能封装进对象,强调具备了功能的对象。
面向对象简单来说就是一种实物,其含有某些特定的功能
面向对象有三个特征:封装,继承,多态
以后的开发就是找对象使用,没有对象就创建对象。找对象,建对象,使用对象并维护对象的关系
类与对象的关系:
类:就是对现实生活中事物的描述
对象:就是这类事物实实在在存在的个体
描述就是class定义的类,具体对象就是对应JAVA在堆内存中使用new建立的实体
类:
属性对应的就是类的变量
行为对应类中的方法(函数)
定义类就是定义属性和行为
类名 别名=new 类名() 创建对象方法;其中别名就是类类型变量
多个引用指向同一个对象,随着改变而改变。
成员变量和局部变量的区别:
成员变量作用于整个类当中
局部变量作用于函数中(方法)或与语句中
成员变量:在堆内存中,因为对象存在才在内存中存在
局部变量:存在栈内存中
匿名对象使用方式一:当对对象的方法只调用一次时,可以用匿名对象来完成 new 类名().类中的方法。如果对一个对象进行多个成员调用,必须给这个对象取个名字
匿名对象使用方式二:可以将匿名对象作为实际参数进行传递
封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式
private:私有,权限修饰符:用于修饰类中的成员变量和成员函数。私有只在本类中有效
把成员变量变成私有化,要访问私有的就需要增加一个公共函数来对外提供访问方式。
一个成员变量对应两个访问方式,一个设置一个获取。也就是set()和get()。set一般是以void没有返回值并且要跟着参数。 get对应的是成员变量的数据类型。
私有仅仅是封装的一种表现形式。
构造函数:
特点:1.函数名和类名相同 2.不用定义返回值类型 3.不可以写return语句
作用:给对象进行初始化
当一个类中没有构造函数时,那么系统会默认给该类加入一个空参数的构造函数
当在类中自定义了一个函数,默认的构造函数就没了。
构造函数也可以进行函数的重载。函数的重载是函数名相同,参数列表不同
构造函数和一般函数在写法上不同,在运行上也不同。构造函数是在对象一建立就运行,给对象初始化。而一般方法是对象调用才执行,是给对象添加对象具备的功能。一个对象建立构造函数只运行一次,而一般方法可以被该对象调用多次。
构造代码块:
作用:给对象进行初始化,对象一建立就运行。而且优先于构造函数执行
构造代码块定义的是不同对象共性的初始化内容
和构造函数的区别:
构造代码块是给所有的对象进行统一的初始化
构造函数是给对应的对象进行初始化
this关键字用法:
用于区分局部变量和成员变量同名的情况。this代表的是本类的对象。哪个对象在调用this所在的函数,那this就代表哪个函数
当定义类中的函数时,该函数内部要用到调用该函数的对象时,用this来表示这个对象
this语句:用于构造函数之间进行互相调用
this语句只能定义再构造函数的第一行
static关键字 (静态)
用法:用于修饰成员(成员变量,成员函数),静态修饰内容被对象所共享。而且除了可以被对象调用外还可以被类名调用。格式为类名.静态成员
在类中没有带static的成员变量又叫做实例变量,带有static的成员变量叫类变量。
static特点:
内存部分:随着类的加载而加载,被所有对象所共享,优先于对象存在,可以直接被类名所调用
实例变量和类变量的区别:
1,类变量随着类的加载而存在于方法区中,实例变量随着对象的建立而存在堆内存中
2,类变量生命周期最长,随着类的消失而消失。实例变量生命周期随着对象的消失而消失
静态static使用注意事项:
1.静态方法只能访问静态成员,非静态方法既可以访问静态也可以访问静态
2.静态方法中不可以定义this,super关键字,因为静态优先于对象存在,所以静态方法中不可以出现this。
3.静态使用是在具有共有性的时候才使用。
4.主函数是静态的。主函数是特殊的函数可以被jvm调用。作为程序的入口