一:对象
1)定义:生活中具体的一个事物。
2)内容:对象包含属性和方法。
1.属性:事物本身的性质,例如某个人的姓名,身高,某个杯子的表面积,容量等。
2.方法:也叫对象的行为,在c中类似于函数,例如某个人学习java语言,吃米饭都可以定义为他(这个对象)的方法。
二:类
1)定义:具有很多共同特性的对象的集合的模板,例如人类,都有鼻子眼睛嘴巴等等,只要你属于人类便都有这些东西,而且每个人的还都不相同!类似于未装修的商品房。
2)内容:属性,方法和构造方法。
1.属性:与对象中的属性相差不大,例如某个人的名字是他(这个对象)的属性,那么"姓名"便是人类这个类的属性。
2.方法:同上,区别在于人类这个类的方法可以是学习这个泛指,而某个人这个对象的方法只能是学习某本书或者某种计算机语言等等具体的事物。
3.构造方法:也叫构造器等,作用是实例化对象,就是由模板做出一个具体的对象。
3)定义一个类的格式:
//类名必须与文件名完全相同,包括大小写 public class 类名 { //定义属性 private 数据类型 属性名; //定义方法 public 返回值类型(没有就用void) 方法名 (数据类型 参数名,...,){ //方法体 } //放数据类型和参数名的圆括号里面也可以为空,即无参数 //定义构造方法 public 类名 (数据类型 参数名){ //方法体 } //如果类里面没有定义构造方法,则系统会默认定义一个构造方法如下 public 类名 (){ } }
附:1.属性也可看做c里的变量,方法和构造方法也可看做c里的函数,大概就是这个意思。
2.类是一种自定义的数据类型,所以说对象可以像某个数据一样作为参数进行传递,(其他的对象(抽象类,接口,数组)也可以进行传递。)(引用传递)
三:方法与实例化对象,this关键字
1)实例化对象
//实例化类的一个对象,Student为某个类名 类名 对象名 = new 类名(); Student stu = new Student(); //等价于以下代码 Student stu1; //在栈里开辟一块新内存存放stu1的对象名(类似于指针) stu1 = Student(); //在堆里开辟一块新内存存放这个对象,并将stu1指向这块内存的首地址
2)方法与this关键字
1.构造方法
a.构造方法在类中定义,在主函数中直接调用,构造方法的调用只用于实例化对象。
b.构造方法的方法名必须与类名一致。
c.构造方法没有定义返回值类型,但并不是说没有返回值,构造方法的返回值是一个地址!
/*例:Student类里已定义的构造方法 public Student (String n){ name = n; } */ //类名 对象名 = new 类名(数据类型 参数名,...,); Student stu = new Student(String "姓名")
2.普通方法
a.普通方法在类中定义,通过对象名调用。
b.普通方法可分为带参数与不带参数,也可分为有返回值与无返回值,这两种分类方法是交叉的。
c.普通方法中的参数使用方法和返回值与c中函数基本一致。
3.方法重载
a.就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。
b.条件:方法名字必须要完全相同。
方法所带的参数个数、参数类型、参数顺序,这三项中最少要有一个是不同的。
c.方法重载一般用于用相同的方式来处理不同类型的数据时。
d.调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法。
4.this关键字
a.this指当前对象自己,用法通常为 this.属性名 。
b.this关键字通常用于区别引用对象属性名与当前对象属性名一致而引起的分辨混乱。
public class Boss { private String name; //带参数的方法 public void setName(String n){ name = n; } //不带参数的方法 public String getName(){ return name; } private int blood; //无返回值的方法 public void setBlood(int n){ blood = n; } //有返回值的方法 public int getBlood(){ return blood; } //带对象参数的方法(引用传递),this关键字的使用 public void fight(Soldier A){ A.setBlood(A.getBlood() - 10); System.out.println(A.getName()+"战士被"+this.name+"Boss攻击,剩余血量为:"+A.getBlood()); } //构造方法的重载 public Boss(String n){ name = n; } public Boss(int n){ blood = n; } }
相关推荐
俄罗斯方块游戏开发视频包括13小节: 01_游戏功能演示与说明 02_游戏中的面向对象分析与设计 03_使用传智播客提供的API类组装俄罗斯方块游戏 04_编写俄罗斯方块游戏中的各个类的主体框架性代码 ...
学习java,讲的很不错
python 02、面向对象1-1_面向对象概述、类和对象_Day09_AM.mp4
《Direct3D HLSL高级实例精讲》光盘源码。由于整个源码大小超过了CSDN的上传限制,因此将其分章节上传。源码及相关资源版权归原作者所有,仅作学习交流,严禁用于商业目的!
23_案例_数组模板类_数组元素存储的是类对象思想抛砖_传智扫地僧 24_作业 代码 文档 01_泛型编程_知识点梳理 02_模板数组类_作业讲解和思想强化(数据类型和算法的分离)_传智扫地僧 03_类型转换_static_cast和...
Java习题02类与对象的基本概念.doc
cpp代码-C++:类02__多继承(子类对象可以转换成父类对象)
面向对象编程 物体(对象) 属性: 记录对象所拥有的数据 实例变量 行为: 描述一个对象能做什么 实例方法 (self, ...) 类 class # 创建一个类 class 类名(继承列表): 类的语句块 # 创建一个函数 def 函数名...
【完整课程列表】 推荐优质Java课程 疯狂Java语言编程 Java入门到进阶教程 01.Java语言概述(共21页).ppt 推荐优质Java课程 疯狂Java语言编程 Java入门到进阶教程 02....类加载与反射(共25页).ppt
02_Java创世纪.mp4 03_Java基本概念(一).mp4 04_Java的变量.mp4 05_Java的基本数据类型.mp4 06_练习课(一).mp4 07_运算符与表达式.mp4 08_分支语句(1).mp4 08_分支语句.mp4 09_练习课(二).mp4 10_循环语句(1)....
59_逻辑与运算符 60_for循环语句 61_while循环语句 62_do while循环语句 63_switch语句(1) 64_switch语句(2) 65_switch语句(3) 66_break语句 67_continue语句 68_if语句嵌套 69_for语句嵌套 70_while语句...
实验名称 实验三 类与对象 姓名 童隆康 学号 20180440218 专业 计算机类 班级 02班 地点 实验楼N3 教师 余童兰 1.实验目的及要求 1)实验目的与要求 2)实验环境 2. 实验内容 2.1 实验题1 #include ...
第04章 面向对象(上) 02 类和对象的定义格式
完整版 Java基础入门教程 Java程序语言设计 03 java对象 类与对象2(共23页).ppt 完整版 Java基础入门教程 Java程序语言设计 03 java对象 类与对象3(共24页).ppt 完整版 Java基础入门教程 Java程序语言设计 03 ...
完整版 Java基础入门教程 Java程序语言设计 03 java对象 类与对象2(共23页).ppt 完整版 Java基础入门教程 Java程序语言设计 03 java对象 类与对象3(共24页).ppt 完整版 Java基础入门教程 Java程序语言设计 03 ...
完整版 Java基础入门教程 Java程序语言设计 03 java对象 类与对象2(共23页).ppt 完整版 Java基础入门教程 Java程序语言设计 03 java对象 类与对象3(共24页).ppt 完整版 Java基础入门教程 Java程序语言设计 03 ...
03_用面向过程和面向对象方法求解圆形面积_类和对象的关系思考_传智扫地僧 04_类中不写成员函数易犯错误模型 05-易犯错误模型-为什么需要成员函数(补充资料)-传智扫地僧 06_课堂答疑类中写成员函数_调用的时才会执行...
【Android NDK 开发】JNI 方法解析 ( C/C++ 调用 Java 方法 | 函数签名 | 调用对象方法 | 调用静态方法 ) I . 调用 Java 方法流程 II . 获取 jclass 对象 ( GetObjectClass ) III . 获取 jclass 对象 ( Find...