类与对象二(基础)
来源:互联网 发布:新西兰移民 知乎 编辑:程序博客网 时间:2024/06/06 12:28
一:构造函数
*构造函数的基本语法:
<修饰符><类名>([<参数表>]){
[<语句>]
}
二:构造函数的特点
*构造函数的作用:完成类对象的初始化工作。
*构造函数的名称必须与类名相同。
*构造器没有返回类型并且不可被继承。
*一般将构造函数的修饰符声明为public
*构造函数中不能有return语句
三:构造函数参数
*参数表与方法声明中的一样。可以像方法一样向构造函数传递参数。
*构造函数可以是0个,1个或者多个参数
四:无参数的构造函数
*没有构造函数-------使用默认的构造函数(没有参数,没有方法体)
*如果使用没有参数的构造函数,则创建的对象具有相同的初始值。
*带有参数的构造函数:
class Person{private String name="model";private int age=17;private double height=1.8;private double weight=60;
public Person(String name,int age,double height,double weight){this.name=name;this.age=age;this.height=height;this.weight=weight;}}
五:构造函数的重载
*一个类可以有多个构造函数,叫做构造函数的重载
*条件(满足其一)
···参数的个数不同
···参数的类型不同
···参数的位置不同(但这时要注意,如果参数的类型相同就要报错,必须是不同的类型)
六:构造函数的使用
*不能由程序员显式调用。
*在创建一个类的新的对象的同时,系统会自动调用该类的构造函数为新的对象初始化。
*构造函数只能和New关键字一起使用。
七:格式
类名 对象名=new 构造函数名称(成员变量的初始值)
八:默认构造函数
*每个类至少有一个构造函数。
*如果不添加构造函数则自动添加默认的构造函数。
····默认构造函数不带参数
····默认构造函数函数体为空
*不必编写构造函数就能使用New Xxx()创造对象实例
注意:当编写了构造函数以后,默认的构造函数就会消失。
九:对象
1,对象的生成(对象的声明)
*格式:<类名><对象名>
如:SameCirele c1,c2;
c1和c2是两个空对象。
2,创建对象
*格式:<对象名>=new <类名><实参>;
如:c1=new SameCirele (3,4,5);
c2=new SameCirele(6,7,8);
对象c1的首位置在3,对象c2的首位置在6;
3,对象的引用
SameCirele c1=new SameCirele(3,4,5);
SameCirele c2=c1;
4,对象的清除
*对象为null时,有java的自动回收机制清除对象,释放对象暂用的类存。
*可有手动写finalize()方法撤销对象-----但不提倡使用
十:关于内存
*简单的理解为栈内存和堆内存
*栈内存是用来放置地址的,就像我们的户口本
*堆内存是用来存放地址的实际对象的,就像是我家的房子一样
示例:声明对象 Person p;
这个时候p是在栈内存里面,没有未初始化的地址
创建对象p=new Person();
这时p在堆内存里就占有位置了,只是现在没赋值,都是默认的值
十一:补充内容
*栈内存:在方法中定义的变量(基本类型和引用类型)。超过变量的作用域时,自动释放变量的内存。
*堆内存:new创建的新对象(包括数组),有java的自动回收机制来清除。
十二:两者的区别
*栈(stack)------连续的内存区域,大小固定,编译时确定所需空间大小,效率高。
*堆(heap)------不连续的内存区域,运行是确定所需空间大小(支持面向对象的多态性,如:运行时才能确定是哪个的对象),效率低,但灵活。
- 类与对象二(基础)
- Java基础之(二) 类与对象
- Java基础(二)类与对象相关
- Web基础之Cookie对象与Session对象(二)
- 类与对象(二)
- java基础(二)流程控制与面向对象
- Java基础之(二十六)对象与垃圾回收
- Java基础学习之(二)—对象与类的方法参数
- java基础--java内存分析(二)(类和对象与内存分析)
- 黑马程序员----objective-C 类与对象基础篇(二)【声明与实现,方法与函数及常见错误】
- 面向对象基础(二)
- 面向对象基础(二)
- 类与对象二
- 对象与类基础
- 对象基础创建对象(二)
- 实验四 类与对象(二)
- Scala类与对象(二)
- 类与对象基础知识(二)
- c++堆排序实现
- Understanding Deep Image Representations by Inverting Them
- 添加Action Provider 添加导航Tabs 自定义ActionBar样式
- web开发之css知识点理解与回顾(一)对齐
- MacOS下hls/rtmp直播服务器搭建(包括推流)
- 类与对象二(基础)
- centos7安装memcached及配置等
- Runtime梳理
- 大数据—Spark简介
- 【Python】pdf文件逐页转图片/修改图片存储大小脚本
- AlertDialog三种退出方式分析
- 【USACO】2004 Open MooFest 奶牛集会
- 分类算法SVM(支持向量机)
- MyBatis的增删改查基本操作