Java面向对象
面向对象的开发,设计,特征
开发过程:就是不断的创建对象,使用对象和指挥对象的过程
设计过程:其实就是在管理和维护对象之间的关系
面向对象的特征:封装,继承,和多态成员变量和局部变量的区别
成员变量:成员变量定义在类中,整个类都可以访问
成员变量依赖类建立而建立。消失而消失。存在堆内存当中
成员变量具有默认值
局部变量:局部变量定义在局部范围内
局部变量存在栈内存当中,作用范围结束以后,就会被释放
局部变量没有默认初始值
1、一般函数和构造函数什么区别呢?
构造函数:对象创建时,就会调用与之对应的构造函数,对对象进行初始化。
一般函数:对象创建后,需要函数功能时才调用。
构造函数:对象创建时,会调用并且只调用一次。
一般函数:对象创建后,可以被调用多次。
2、创建对象都必须要通过构造函数初始化。
一个类中如果没有定义过构造函数,那么该类中会有一个默认的空参数构造函数。
如果在类中定义了指定的构造函数,那么类中的默认构造函数就没有了。
3、多个构造函数是以重载的形式存在的。
this关键字
this代表其所在函数所属对象的引用。换言之,this代本类对象的引用。 当成员变量和局部变量重名,可以用关键字this来区分,this就是所在函数所属对象的引用。 简单说,哪个对象调用了this所在的函数,this就代表哪个对象。一般方法调用默认加this。 什么时候使用this关键字呢? 当在函数内需要用到调用该函数的对象时,就用this。
static关键字
static关键字:用于修饰成员(成员变量和成员函数)。
被修饰后的成员具备以下特点:
1、随着类的加载而加载。
2、优先于对象存在。
3、被所有对象所共享。
4、可以直接被类名调用。
成员变量和静态变量的区别?- 两个变量的生命周期不同
- 成员变量随着对象的创建而存在,随着对象被回收而释放。 静态变量随着类的加载而存在,随着类的消失而消失。
- 调用方式不同 成员变量只能被对象调用。
- 静态变量可以被对象调用,还可以被类名调用。
- 别名不同 成员变量也称为实例变量。
- 静态变量也称为类变量。
- 数据存储位置不同 成员变量存储在堆内存的对象中,所以也叫对象的特有数据。
- 静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据。
- 使用注意: 1. 静态方法只能访问静态成员,如果访问非静态成员,就会报错! 原因:静态方法和变量存在的时候,对象还不存在,非静态变量也不存在,肯定无法访问
静态代码块
随着类的加载而执行,而且只执行一次。
作用:用于给类进行初始化。
“` java
class StaticCode{
static int num;
static{
num = 10;
}
static void show(){
System.out.println(num);
}
构造代码块
所有对象进行初始化
“` java
lass Person{
private String name ;
//构造代码块,可以给所有对象进行初始化的
{
System.out.println("person run");
}
//是给对应的对象进行针对性的初始化
Person(){
name = "baby" ;
}
Person(String name){
this.name = name;
}
public void speak(){
System.out.println("name:" + name);
}
}
class StaticCodeDemo{
public static void main(String[] args){
Person p1 = new Person();
p1.speak();
Person p2 = new Person(“旺财”);
p2.speak();
}
}
“`