类
前言
面向过程:强调过程,注重于每个步骤,
面向对象:强调对象,注重所描述的事物
一.类与对象
类是抽象的,而对象是具体的
类是对象的模板,对象是类的实例
如,狗是一种类,而哈士奇,金毛,柯基等则可以说是对象
类的定义
类是属性和行为的集合
成员变量即为属性,成员方法即为行为
public class cat(){
//成员变量
Int age;
String sex;
//成员行为
//狗吃食物
Public void eatfood(){System.out.println("狗吃食物");}
}
对象的定义
对象是对一类事物的具体体现,对象是类的一个实例
对象的创建
类名 对象名=new类名()
使用对象访问类中的成员
对象名.成员变量
对象名.成员方法
二.类与对象的实例
通过电脑这个类来熟悉类与对象的使用
/*定义一个类,模拟”电脑“这个事物
属性:品牌,颜色,型号
行为:看到的颜色,测得的型号
应用到类中
成员变量(属性)
String brand;//品牌
String color;//颜色
String cpu;//型号
成员方法(行为)
//查看电脑型号
public void check() {
System.out.println("型号是:" + cpu);
}
//电脑的外观
public void appearenc() {
System.out.println("颜色是:" + color);
}
//查看电脑的品牌
public void what() {
System.out.println("品牌是" + brand);
}
}*/
public class qa3 {
//成员变量
String cpu;
String color;
String brand;
//成员方法
//查看电脑型号
public void check() {
System.out.println("型号是:" + cpu);
}
//电脑的外观
public void appearenc() {
System.out.println("颜色是:" + color);
}
//查看电脑的品牌
public void what() {
System.out.println("品牌是" + brand);
}
}
然后再编写一个测试类来感受类与对象
public class test {
public static void main(String[] args) {
//创建对象 (类名 对象名=new 类名)
qa3 a = new qa3();
//输出成员的值
System.out.println("品牌:" + a.brand);//null
System.out.println("型号:" + a.cpu);//null
System.out.println("颜色:" + a.color);//null
System.out.println("‐‐‐‐‐‐‐‐‐‐‐‐");
//给成员变量赋值
a.brand = "小米";
a.color = "蓝色";
a.cpu = "231";
//再次输出成员的值
System.out.println("品牌:" + a.brand);
System.out.println("型号:" + a.cpu);
System.out.println("颜色:" + a.color);
System.out.println("‐‐‐‐‐‐‐‐‐‐‐‐");
//调用成员的方法 对象名.成员方法()
a.appearenc();
a.what();
}
}
还未给类中的成员变量赋值时,输出的是默认值即为null。
最后的输出的结果如下
三.对象内存
在栈内存中运行的方法,遵循"先进后出,后进先出"的原则
对象调用方法时,根据对象中方法标记(地址值),去类中寻找方法信息。
四.成员变量和局部变量的区别
成员变量与局部变量的区别
1、在类中的位置不同
成员变量:在类中方法外面
局部变量:在方法或者代码块中,或者方法的声明上(即在参数列表中)
2、在内存中的位置不同
成员变量:在堆中(方法区中的静态区)
局部变量:在栈中
3、生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用或者代码块的执行而存在,随着方法的调用完毕或者代码块的执行完毕而消失
4、初始值
成员变量:有默认初始值
局部变量:没有默认初始值,使用之前需要赋值,否则编译器会报错