黑马程序员-day06-面向对象

------- android培训、java培训、期待与您交流! ----------


面向对象(对象后的括号不能丢,调用对象的功能时,即使对象没有参数类型,后面的括号也不能丢) 四个特点:抽象,多态,封装,继承
对象 个体或具备一定功能的个体,存储在堆内存中,以new的形式产生
对个体事物具备的共性的描述,class定义的类
class abc
int long;
String color="red";
void run(){}
定义一个名称为abc的类,类中包含该事物的一些属性和行为,功能等,假设有long=5,color=red,行为功能名称为run
abc x=new abc() 按照abc类,在堆内存中生成一个名称为x(名称存储在栈内存中,x为类类型变量,指向对象)的对象,该对象具备abc类的属性,功能,行为等
x.long=4 对象.对象成员,该形式来控制对象的属性和行为,这里将对象长度更改为4
x.run 控制对象运行行为
new abc()      匿名对象
匿名对象的使用 当对对象的方法只调用一次时,可以使用匿名对象来简化代码,即:new abc().run
当需要调用对象的多个成员时,必须给对象起名字;
匿名对象还可以用来传递参数,减少引用,简化代码
类中可以没有函数 用作调用对象属性
成员变量 类下定义的一级变量,作用于整个类,存储于堆内存中,因对象的存在而存在,初始化值为0,null
局部变量 作用于函数或者某语句,存在于栈内存,没有初始化值,必须定义才能使用
封装
encapsulation
隐藏属性和实现细节,仅对外提供公共访问方式
好处 隔离变化,安全性,重用性,便于使用
原则 不需要对外提供的内容,实现细节
隐藏属性,提供公共访问
private 关键字:权限修饰符,用于修饰类中的成员(变量或函数)只在本类中有效,与public是相对应的。
类中属性一般需要封装 提供访问其的公共方法,而不是直接访问
在方法中可以对其加以限制,编辑条件等
构造函数 特点 与类同名,没有返回值,不用定义返回值类型,多个以重载方式存在
作用 给对象进行初始化,当发现事物具备一些特性或行为,那么将这些定义在构造函数中
细节 未定义构造函数,系统会自动加上一个空参数的构造函数,权限与类相同,若定义了,则不会。
运行 对象一建立便执行,仅执行一次
构造代码块 特点 没有名称,直接用大括号括起来
运行 优先于构造函数,且作用于所有建立的对象
主函数 public static void main(String[] args) 格式固定,只有args可以任意更改
关键字含义 public:表示该函数的访问权限是最大的
static:主函数是静态的,随着类的存在而存在
void:主函数没有具体的返回值
main:主函数的名称,固定
String[] args:参数类型为字符串数组类型
jvm调用 传入的是 new String[0]
建立对象的内存过程 1,因为new一个对象需要用到类名.class文件,虚拟机会先找到class文件加载进内存
2,执行该类的static代码块,对类进行初始化
3,在堆内存中开辟空间,分配内存地址
4,在堆内存中建立对象的特有属性,并进行默认初始化(0,null等)
5,对对象的属性进行显示初始化(即如果有的话,类似于赋值:int x=1)
6,执行类中的构造代码块,给对象初始化
7,对对象进行相应的构造函数初始化
8,将内存地址值赋给栈内存中的建立的类变量名




你可能感兴趣的:(java学习笔记)