封装那个没复制好。
一、面向对象
是基于面向过程的,是一种程序编程的思想
面向过程:一步一步去做
面向对象的思想特点:
1、符合人们思想习惯
2、把复杂的事情简单化
3、角色发生转变,从执行者变成指挥者
面向对象的三大特征:
封装、继承、多态
成员变量和局部变量:
位置:成员变量在类中方法外
局部变量在方法内
生命周期:成员变量随着对象的创建而存在,随着对象的消失而消失
局部变量随着方法的调用而存在,随着方法调用完毕而消失
内存:成员变量在堆内存
局部变量存在栈内存
默认值:成员变量有默认值
局部变量没有
使用范围:成员变量在整个类中都可以访问
局部变量只能在当前方法中访问
类和对象:
类:属性和行为的集合
成员变量和成员方法
对象:类的具体表现
什么时候使用对象:需要描绘具体事物的时候要使用对象
this:表示当前的对象
匿名对象
new 类名()每new一次相当于在堆内存中开辟一个空间
使用方式:
1、对象只是用一次,那么可以用匿名对象
2、匿名对象可以当参数传递
二、封装
将对象的属性和方法具体实现细节隐藏起来,对外提供公共的访问方式
封装的好处:
提高了代码的复用性
提高安全性
构造方法:
1、方法名和类名必须一致
2、没有返回值类型,不能写返回类型
3、可以写return 但没有必要写
作用和特点:
1、创建对象的时候自动运行,只运行一次
2、创建对象的时候,给类中的成员变量,初始化赋值
3、所有类都有一个构造方法啊,编译的时候会自动添加一个构造方法
4、构造方法的重载,方法名一样,参数列表不同
this()语句形式,必须写在构造方法首行
static 静态
1、修饰成员变量和成员变量,可以直接用类名调用
2、不能修饰局部变量和构造方法
静态只能接受静态修饰的成员变量和成员方法
非静态能接收静态和非静态的
注:static 中不能写this和super
例:
class Person{
private String name;
private int age;
public Person(){
System.out.println("调用成功了");
}
public Person(String name){//Person的重载
this();
this.name=name;
}
public Person(String name,int age){
this(name);
this.age=age;
}
public void setName(String name){this.name=name;}
public void setAge(int age){this.age=age;}
public String getName(){return this.name;}
public int getAge(){return this.age;}
}
class Day7{
public static void main(String[] args) {
Person p=new Person();
System.out.println(p.getName()+"\n"+p.getAge());
}
} |
|