佛山行业网站建设,邯郸网站建设行情,艾艺的品牌网站设计,六盘水网站建设求职简历1. 类和对象
1.1 类和对象的理解
客观存在的事物皆为对象 #xff0c;所以我们也常常说万物皆对象。即各个对象的总称#xff0c;比如学生是一个类#xff0c;但是学生有很多个#xff0c;每一个称之为对象。 类 类的理解 类是对现实生活中一类具有共同属性和行为的事物的…1. 类和对象
1.1 类和对象的理解
客观存在的事物皆为对象 所以我们也常常说万物皆对象。即各个对象的总称比如学生是一个类但是学生有很多个每一个称之为对象。 类 类的理解 类是对现实生活中一类具有共同属性和行为的事物的抽象 类是对象的数据类型类是具有相同属性和行为的一组对象的集合 简单理解类就是对现实事物的一种描述可以理解为一种设计图 类的组成 属性指事物的特征例如手机事物品牌价格尺寸 行为指事物能执行的操作例如手机事物打电话发短信 类和对象的关系 类类是对现实生活中一类具有共同属性和行为的事物的抽象 对象是能够看得到摸的着的真实存在的实体 简单理解类是对事物的一种描述对象则为具体存在的事物
面向对象的学习重点学习获取已有对象并使用和学习如何自己设计对象并使用
1.2 类的定义
类的组成是由属性和行为两部分组成 属性在类中通过成员变量来体现类中方法外的变量 行为在类中通过成员方法来体现和前面的方法相比去掉static关键字即可后面学习会讲为什么要去掉static关键字这里先跟着做就行
类的定义步骤
①定义类
②编写类的成员变量
③编写类的成员方法 public class 类名 {// 成员变量变量1的数据类型 变量1变量2的数据类型 变量2;…// 成员方法方法1;方法2;
} 示例代码 /*手机类类名手机(Phone)
成员变量品牌(brand)价格(price)
成员方法打电话(call)发短信(sendMessage)*/
public class Phone {//成员变量String brand;int price;
//成员方法public void call() {System.out.println(打电话);}
public void sendMessage() {System.out.println(发短信);}
}
补充 这里有必要记一下这两种类后面会经常用到。在这里强调一下我所说扩展内容和补充内容都是重点不能跳过学习。 类的注意事项 1.3 对象的使用 创建对象的格式我想这个大家已经不陌生了。 类名 对象名 new 类名(); 调用成员的格式 对象名.成员变量 对象名.成员方法(); 示例代码 /*创建对象格式类名 对象名 new 类名();范例Phone p new Phone();
使用对象1使用成员变量格式对象名.变量名范例p.brand2使用成员方法格式对象名.方法名()范例p.call()*/
public class PhoneDemo {public static void main(String[] args) {//创建对象Phone p new Phone();
//使用成员变量System.out.println(p.brand);System.out.println(p.price);
p.brand 小米;p.price 2999;
System.out.println(p.brand);System.out.println(p.price);
//使用成员方法p.call();p.sendMessage();}
} 1.4 学生对象-练习 需求首先定义一个学生类然后定义一个学生测试类在学生测试类中通过对象完成成员变量和成员方法的使用 分析 成员变量姓名年龄… 成员方法学习做作业… 示例代码 public class Student
{//成员变量String name;int age;
//成员方法public void study() {System.out.println(好好学习天天向上);}
public void doHomework() {System.out.println(键盘敲烂月薪过万);}
}
/*学生测试类*/
public class StudentDemo {public static void main(String[] args) {//创建对象Student s new Student();
//使用对象System.out.println(s.name , s.age);
s.name 林青霞;s.age 30;
System.out.println(s.name , s.age);
s.study();s.doHomework();}
} 扩展一下引用数据类型 尤其要注意那个类它是引用数据类型待会儿还会再说到。 定义类的注意事项 2. 对象内存图
2.1 单个对象内存图
回顾一下内存分配 作为一个热爱编程或者想做一个资深的程序员基本功一定得扎实。对java内存分配要熟悉。 再看 这个仅限了解但是要知道这个知识点。 成员变量使用过程 这张图告诉我们new关键字申请的空间都是在堆里面申请的。有地址的。而对象名就是一个存放地址的变量所谓的引用就是通过这个地址去找其他的成员变量。因此类是一种引用数据类型。 成员方法调用过程 我们需要知道的是在堆里面除了成员变量以外还有成员方法的地址也是在堆中注意是成员方法的地址。 引用数据类型的变量其实是一个存放地址的变量如果用System.outprintln打印这个变量的话会得到一个地址值可能不是很好理解大家可以类比String这个类对比学习就知道了。
如下 大家看到这个可能有点晕但是我说没什么问题这不就是一个地址吗怎么会是地址呢在前面我们就知道在java语言中地址的构成形式是数据类型8位的16进制数字。后面俩没啥问题主要是前面那一串是什么是数据类型吗答案是当然是我们之前说了除了基本数据类型四类八种忘记的复习一下以外的都是引用数据类型那当然就是数据类型了。因此类也是一种数据类型是一种引用数据类型。 2.2 多个对象内存图 成员变量使用过程 看懂即可。对象名可以理解为C语言中所说的指针。 成员方法调用过程 总结 多个对象在堆内存中都有不同的内存划分成员变量存储在各自的内存区域中成员方法多个对象共用的一份
2.3 多个对象指向相同内存图 总结 当多个对象的引用指向同一个内存空间变量所记录的地址值是一样的 只要有任何一个对象修改了内存中的数据随后无论使用哪一个对象进行数据获取都是修改后的数据。
3. 成员变量和局部变量
3.1 成员变量和局部变量的区别 类中位置不同成员变量在类中但在方法外局部变量方法内部或方法声明上 内存中位置不同成员变量堆内存局部变量栈内存 生命周期不同成员变量随着对象的存在而存在随着对象的消失而消失局部变量随着方法的调用而存在醉着方法的调用完毕而消失 初始化值不同成员变量有默认初始化值局部变量没有默认初始化值必须先定义赋值才能使用 本节内容知识点有些抽象可以多看几遍甚至查看相关书籍。