面向对象
1. 类与对象
1. 抓特征
① 静态特征:属性。
② 动态特征:方法。
2. 创建对象
new 类名();
3. 类中成员的调用
对象.属性/方法(参数)
4. 类中的成员
1》属性
2》方法
5. 类和对象
1》类:具有共同特征的一类事物的模板。
2》对象:具体的事物。
代码:
public class 描述猫 {
public static void main(String[] args) {
Cat cat=new Cat();
//对象.属性
cat.name="小花";
cat.color="黄色";
//对象.方法()
System.out.println(cat.name);
cat.catchMouse();
//创建一个对象
Cat cat1=new Cat();
cat1.name="加菲猫";
cat1.color="橘色";
cat1.catchMouse();
}
}
class Cat{
String name;
//猫的名称
String color;
String type;
String bodily;
//体型
//方法:
public void catchMouse() {
System.out.println("猫捉老鼠");
}
}
2. 对象的内存图
1.类是只加载一次的。但是对象在堆中可以创建无数次。并且类中的成员变量(属性),在对象中需要开辟空 间。
2.对象的属性如果在类中没有赋值的情况下,会赋默认值,并且对象的属性来说,属于它自身的,独一份, 其它对象不能修改。
3. 构造函数
1. 构造方法:用来进行创建对象的方法
2. 构造方法的格式:
[修饰符] 类的名称(参数){
}
一般方法格式:
[权限修饰符] [修饰符] 返回值类型 方法名称(参数){
}
注意:构造方法没有返回值,包括void都没有。
构造方法的名称不能随便起,必须是类名。
3. 对于一个类来说,如果没有在该类中显式的声明一个构造方法,
java编译器会在编译时,自动添加一个 无参空构造。
如果在该类中显式的声明了构造方法,编译器就不会为我们添加无参空构造。
4. 构造方法也有重载。
5. 构造方法的作用:
① 创建对象的方法。 创建对象,通过new操作,然后调用构造方法。
② 初始化成员 。
6. this的用法
① 当全局变量 与局部变量重名时,按照就近原则,局部变量优先被使用。如果想使用全局变量,通 过this来使用。
② this的用法: 指代当前类的当前对象。
格式: this.方法()/属性
代码:
public class 构造方法 {
public static void main(String[] args) {
// M m=new M();
// M m1=new M(5);
/*M m2=new M(); m2.m=15;*/
M m3=new M(10);
// System.out.println(m3.m);
System.out.println(m3.a);
}
public static void fun() {}
}
class M{
int m;
int a;
//成员变量 全局变量 属性
//构造方法的格式:
public M() {
System.out.println("这是一个构造方法。。。。");
}
//构造方法上添加参数
public M(int a) {
//局部变量
System.out.println("这是一个有参构造。。。"+a);
// System.out.println(this.a);
//m=a;
this.a=a;
}
}