`
kang_sun
  • 浏览: 3366 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

02_类与对象

阅读更多

一:对象

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;
	}
	
}

 

 

0
0
分享到:
评论

相关推荐

    02_类和对象.html

    02_类和对象.html

    传智播客_俄罗斯方块游戏02_面向对象设计

    俄罗斯方块游戏开发视频包括13小节: 01_游戏功能演示与说明 02_游戏中的面向对象分析与设计 03_使用传智播客提供的API类组装俄罗斯方块游戏 04_编写俄罗斯方块游戏中的各个类的主体框架性代码 ...

    Chapter02_过程与函数_面向对象的程序设计_数组与算法_

    过程与函数则是代码组织和模块化的核心方法,而面向对象的程序设计(OOP)则为复杂系统的构建提供了强大的抽象和封装手段。用户界面设计、菜单、工具栏和状态栏等元素则是人机交互的关键,对话框的使用进一步丰富了...

    day02_分类和static.zip

    静态方法与类关联,而不是与特定的类实例关联,因此它们可以直接通过类名调用,而无需创建对象。静态方法通常用于工具方法或者不依赖于类实例状态的函数式操作。 此外,"static"还有其他用途,比如静态导入(static...

    E02_面向对象复习.pdf

    13. 向上转型是将子类对象赋值给父类引用的过程,而向下转型是将父类引用强制转换为子类对象的过程。 14. 在多态中,成员变量的访问遵循编译时类型(父类),而成员方法的调用遵循运行时类型(子类)。 15. `...

    传智播客_贪吃蛇游戏开发02_游戏的面向对象设计

    在本课程“传智播客_贪吃蛇游戏开发02_游戏的面向对象设计”中,我们将深入探讨如何利用面向对象编程(Object-Oriented Programming, OOP)原理来构建一个经典的游戏——贪吃蛇。面向对象设计是软件工程中的核心概念...

    python 02、面向对象1-1_面向对象概述、类和对象_Day09_AM.mp4

    python 02、面向对象1-1_面向对象概述、类和对象_Day09_AM.mp4

    02_传智播客ibatis教程_查询所有的对象

    在IT行业中,Ibatis是一个非常重要的持久层框架,它提供了SQL映射功能,使得开发者能够更灵活地控制SQL语句的编写,同时还能保持模型对象与数据库操作的解耦。本教程“02_传智播客ibatis教程_查询所有的对象”显然是...

    02_ibatis教程_查询所有的对象.zip

    本教程"02_ibatis教程_查询所有的对象"主要聚焦于如何使用Ibatis来查询数据库中的所有对象,这在数据操作和业务逻辑处理中是非常常见的需求。 Ibatis的核心思想是将SQL语句与Java代码分离,通过XML配置文件或注解的...

    02_DXUT库和渲染对象类

    DXUT库和渲染对象类是Direct3D编程中的重要组成部分,尤其在开发复杂的3D图形应用时。DXUT,全称DirectX Utility Toolkit,是由微软提供的一个开源工具集,主要用于简化DirectX应用程序的基础架构,包括窗口管理、...

    02_类加载子系统.pptx

    1. **加载**:加载阶段是类加载的起点,它会找到对应的.class文件,并将其读入内存,转换为一个Class对象。类的加载可以通过引导类加载器、扩展类加载器和应用类加载器来完成,或者通过自定义的类加载器实现。 2. *...

    spring_day02_spring_

    标题“spring_day02_spring_”和描述“heima spring source code day 02”表明这是一份关于Spring框架的深入学习资料,主要聚焦在源码分析上,特别是针对第一天学习后的第二天内容。标签“spring”进一步确认了讨论...

    android_source_frameworks_02_base_02

    3. **java**: 这里包含了Android的Java API,包括Activity、Intent、BroadcastReceiver等Android关键类的实现。`android.app`、`android.content`、`android.view`等包都在这里定义。 4. **packages**: `packages`...

    iBATIS_02_addSequence_add_del_update_sel_sellike

    这些操作都是基于 SQL Map 文件,这是一个 XML 文件,其中包含了 SQL 语句及其与 Java 类的映射关系。iBATIS 提供了强大的映射机制,能够简化 SQL 编写和数据访问层的维护工作。 为了实现这些操作,你需要创建相应...

    第十二天 02__new__和__init__方法【千锋Python人工智能学院】1

    首先,`__new__`方法是类的静态方法,它在创建新对象时被调用。`__new__`至少需要一个参数`cls`,这个参数表示要实例化的类,Python解释器会在实例化时自动提供。`__new__`方法必须有返回值,返回的是实例化出的对象...

    学学Python_36类_02 类的方法

    在Python中,类的方法是与类实例关联的函数。它们可以访问和修改实例的属性,并执行特定的操作。方法定义在类的内部,并通过在函数定义前加上`def`关键字,然后在其参数列表中添加第一个参数`self`来创建。`self`是...

    Java习题02类与对象的基本概念.doc

    Java 中的类与对象基础概念 Java 语言中的类和对象是两个基本概念,它们之间存在着紧密的关系。在 Java 中,类是对象的蓝图或模板,它定义了对象的属性和行为。对象是类的实例,每个对象都有其自己的状态和行为。 ...

    02_javaOOP.rar

    本资料“02_javaOOP.rar”深入探讨了Java的面向对象特性,包括类、对象、封装、继承、多态等关键知识点。 1. 类与对象: 在Java中,类是创建对象的蓝图,它定义了一组特性和行为。对象则是类的实例,具备类所定义的...

    q_dms_chapter02_JAVA源码_

    这个项目的重点可能是讲解Java语言的基础或者特定主题,如面向对象编程、类与对象、数据类型、控制结构等。 【描述】"Java project" 提示我们这是一个基于Java的项目,可能包括一个或多个类、接口、方法等,用于...

Global site tag (gtag.js) - Google Analytics