面向对象、代码块
来源:互联网 发布:ip端口绑定域名 编辑:程序博客网 时间:2024/04/30 22:20
面向对象:
其实是一种思想。重点强调的是具体的事物
将大象装进冰箱里。
面向过程的思想来思考:
1,打开冰箱
2,存储大象
3,关上冰箱
过程可以理解为动作
面向对象的思考方式:
1, 冰箱打开
2, 冰箱存储大象
3, 冰箱关上
强调的是冰箱。
而这些动作都是冰箱应该具备的动作。
只要找到了冰箱,就可以操作冰箱的这些动作。
面向对象的特点:
1, 面向对象是一种思想,是符合现在人们思考习惯的一种思想。
2, 面向对象的出现将复杂问题简单化
3, 面向对象将过程中的执行者,转换成了指挥者。
面试官你本身就在用面向对象的思想在思考问题,比如公司接了一个项目,以面试官您的技术肯定是能拿下来的,但是得花许多时间,为了让开发这个问题简单化,你就去找具备专业编程能力的人来做这事,而我就是具备专业编程能力的人,您直接调用我这功能我就帮你把活做完了。这时开发就变得简单化了,您也就变成了指挥者,不用自己做,直接指挥我。
面向对象基于面向过程,将过程进行封装到了对象中。
成员变量和局部变量的区别:
1, 定义的位置不同
成员变量定义在类,作用于整个类。
局部变量定义函数,作用于整个函数,或者定义在语句,作用于语句内。
2, 内存出现的时间和位置不同
成员变量:当对象创建时,出现在堆内存的对象当中
局部变量:所属区间被运算时,出现在栈内存中
3, 生命周期不同
成员变量:随着对象的出现而出现,随着对象的消失而消失
局部变量:随着所属区间运算结束,立刻被释放
4, 初始化值
成员变量:因为在对内存中,都有默认初始化
局部变量:没有默认初始化
匿名对象 new 类名();
匿名对象的使用:
1, 当对象方法进行一次调用的时候,可以使用匿名对象来简化
2, 可以将匿名对象作为实际参数进行传递
封装
是指隐藏对象的属性和实现细节,仅对外提供访问方式
好处:将变化隔离
便于使用
提高重用性
提高安全性
封装原则:
将不需要对外提供的内容都隐藏起来
把属性都隐藏,提供公共方法对其访问
构造函数
特点:任何用class定义的类中,都有一个默认的空参数的构造函数。用于给该类对象进行初始化。如果该类中指定了构造函数,那么默认的构造函数就没有了
创建的每个对象都是一个实体,每个实体必须要进行初始化后才可以使用。实体的初始化是需要通过动作完成的。
构造函数的作用:给对象进行初始化。
构造函数和一般函数的区别:
1, 在书写格式上不同
2, 运行上不同
构造函数,是在对象一创建就被调用。而且只调用一次。
一般函数,是对象常见完成后,所需时,才被调用。可以被调用多次。
构造函数是有return语句的,用于结束构造函数的初始化动作。
this
代表的是一个对象。那个对象调用this所在的函数,this就代表哪个对象
This就是当前对象的一个引用。
This表现形式一:当局部变量和成员变量同名的时候,可以用this来区分
表现形式二:构造函数之间的调用可以使用this关键字,后面跟上小括号,制定具体的实参即可明确要调用的构造函数。
特殊情况:调用本类中构造函数的this语句必须定义在构造函数的第一行
因为初始化动作要先完成。
static
1, 被static修饰的成员变量,被所有对象所共享。
2, 静态随着类的加载而加载,随着类的消失而消失。
3, 优先于对象存在
4, 静态成员可以直接被类名调用。
Static的使用注意事项
1, 静态方法可以调用静态成员,不能调用非静态成员。
非静态方法可以调用静态成员,也可以调用非静态成员。
2, 在静态方法中不允许出现this,super关键字
this代表对象,而静态方法执行时还没有对象
3, 主函数是静态的。
静态有访问局限性,只能访问静态内容。
静态成员变量和非静态成员变量的区别:
1, 非静态成员变量又称为实例变量。静态成员变量又称为类变量。
2, 非静态成员变量,随着对象的创建而存在,随着对象的消失而消失。
静态成员变量,随着类的加载而存在,随着类的消失而消失
3, 非静态变量存在于对象堆内存中。静态变量存在于方法区中
4, 非静态变量只能被对象所调用。静态变量可以被类名调用,也可以被对象调用。
主函数 public static voidmain(String[] args)
public:权限修饰符,公共,主函数的权限足够大。
static:静态修饰符,调用主函数不需要创建所在类对象,直接用类名即可。
void:主函数是没有返回值的。
main:固定的函数名称。Jvm认识该名称并认识该名称定义的固定格式。
(String[] args):主函数的参数列表,是一个字符串数组类型的参数。
构造函数私有化,这样其他程序就无法创建该类对象了
对变量私有,对外提供get,set方法可以对数据跟好的控制。(数据可控)
private int num;public void setNum(int num){ if(num<0) return; this.name=name;}public int getNum(){ return num;}
静态代码块:
static { System.out.println(“A”); }
特点:
1, 随着类的加载而执行,而且只执行一次。
2, 优先于主函数。
局部代码块:
控制变量的生命周期,在其他的方法内部
{ 需要控制的变量 }
构造代码块:
它可以对所有对象进行初始化 构造函数只对对应的对象进行初始化
单独在方法外。 { 需要初始化的变量 }
- 面向对象、代码块
- 面向对象 代码块
- 面向对象(静态代码块).
- Java面向对象-代码块
- 面向对象静态代码块
- 面向对象静态代码块
- 面向对象--静态代码块
- 面向对象 构造代码块 静态代码块
- Java面向对象基础--代码块
- java面向对象(静态代码块)
- javaSE-面向对象-静态代码块
- javaSE-面向对象-构造代码块
- Java面向对象 构造代码块
- 面向对象(代码块、继承)
- Java面向对象,什么是代码块
- 面向对象—静态代码块+构造代码块+局部代码块
- 面向对象之代码块和继承代码演示
- 面向对象—06—静态代码块
- 基于DCT系数的实时监控中运动目标检测
- std::unique与结构体
- 内存泄露
- Pascal's Triangle
- 《C++程序设计》笔记之-运算符重载
- 面向对象、代码块
- (Android) Download Images by AsyncTask API
- 网站建设中的三个核心要素
- JS贪吃蛇游戏
- Hibernate(六)——多对多关联映射
- 如何做好企业网站
- hdu 1823 Luck and Love(线段树)
- Locale类(一)
- EOJ gauss