类是一种抽象的概念;看不见摸不着但是却是实际存在的;比如说人,鱼,电脑,手机等;
对象就是一切可以看见的具体的事物,比如说你现在正在使用的这台电脑,还有你这个人等一切具体
的可以分辨的而且还是唯一的
在java中的类都是源于生活中的内容,而面向对象的编程就是模拟现实的生活;对象作为基础和核心
内容;而类就是作为一个基本的单位存在,也可以说是一种数据类型。
生活中的类之所以为称之为类就是因为那些组成类的具有相同的属性和特征;而对象就是作
为这个类中所具有的特别的属性值,比如说有个叫做田佳伟的人,他属于人这个类;而人类中具有的
属性就是姓名和年龄等,那么田佳伟就具有自己的姓名和年龄。
程序中的类是具有特殊的属性和方法的,
它的基本定义格式如下:
public class 类名{ private 属性名; public 返回值类型 方法名(参数类型 参数名,){ //方法体 } }
由上述得到方法的一般定义格式,在java中方法主要分两种:普通方法;构造方法。
普通方法就是上面所定义的格式,而构造方法就不一样了,构造方法的定义格式如下
public 类名(参数类型 参数名,.....){ //方法体 }
通过以上的方法的方法的定义格式可以看到普通方法和构造方法的第一点区别:定义的格式不同
普通方法的方法名可以根据实际需要自己任意取得,但是构造方法的方法名就只能取类名;普遍方法要定义
返回值类型,构造方法就没有返回值类型,还有一点就是两者用途也是不一样的。具体原因在下面说。
定义好了类我们就可以实例化对象了;实例化对象的关键字是 new;基本格式如下:
类名 对象名 = new 类名();
既然类定义了属性和方法那么就应该被对象调用,集体格式如下:
对象名.方法名(参数值,...);
对象名.属性;
下面通过实例来具体实现一下:
给这样一个场景:田佳伟在学习java语言,学分为3。
先分析一下:
对象:田佳伟 java语言
行为:学习
田佳伟的属性 姓名 学分
代码如下
//先定义一个学生类 public class Student{ //定义属性 private String name; private int sccore; //定义学习方法 public void study(Sting str){ sccore = 3; System.out.println(name+"在学习"+str+",学分是"+sccore); } //程序主入口 public static void main(String[]args){ //实例化对象 Student stu1 = new Student(); //设置姓名属性 stu1.name = "田佳伟"; stu1.study("java"); } }
下面来具体总结一下构造方法,通过上面的对方法的总结,能够明白构造方法的一般定义格式,
普通方法的调用就是上面所讲的 对象名.方法名(参数);那么构造方法具体是怎么用的呢?其实java中
的构造方法就是在实例化对象时调用的;根据实例化对象的格式:类名 对象名 = new 类名();
从实例化对象的格式可以看到 new类名();在java中一对封闭的括号一般就是表示方法;那么此时就是调用了
java中默认的提供的构造方法.构造方法java中会默认提供;我们也可以自己定义,但是我们自己
一旦定义了那么原来java中提供的默认的构造方法就会没用了,如下定义一个构造方法
public class Student{//定义一个类 private String name; private int age //定义一个构造方法 public Student(Sting n,int a){ name = n; age = a; } public void Info(){ System.out.println(name+"是学生,"+"年龄是"+age); } //程序的入口 public static void main(String[]args){ //注意:此时的实例化对象就不一样了 /* * *如果这样实例化就会出错: *Student stu1 = new Student(); */ Student stu1 = new Student("田佳伟",30); stu1.Info(); } }
在java程序中我们能够定义普通方法也能定义构造方法,那么我能定义多个具有相同名字的方法吗?
在java中就是方法的重载,那么为什么需要定义具有相同名字的方法呢?举个例子:一个图书检索系统,我们
可以通过不同的方法来检索,比如书名,作者名 等;这样都是使用检索方法;但是检索的关键字就会不同
这时就要使用方法的重载,在java语言中方法的重载究竟是什么样的呢?可以这样来说
1.方法名必须相同
2.方法的参数类型。个数。类型。这三者中必须有一个是不同的
举如下例子:构造方法的重载
//定义一个类 public class Student{ private String name; private int age //定义构造方法 public Student(){ } //构造方法重载 public Student(String n,int a){ name = n; age = a; } public Student(String n){ name = n; } public void Info(){ System.out.println(name+"是学生,"+"年龄是"+age); } public static void main(String []args){ //实例化对象 Student stu = new Student(); stu.name = "田佳伟"; stu.age = 30; Student stu1 = new Student("田佳伟"); stu1.age = 30; Student stu2 = new Student("田佳伟",30); stu.Info(); stu1.Info(); stu2.Info(); } }
普通方法的重载也是如上面的构造方法的一样,不再赘述。
关于this关键字的总结。java中的this关键字是很有用的。this关键字只能调用当前类中的属性和方法
当属性名跟参数相同时,this关键字就是用来区分表示当前属性和参数的,同时也可以表示当前对象调用方法,同时
this也可以调用当前的构造方法。
具体实例如下:
public class Student{ private String name; private int age //定义构造方法 public Student(String name,int age){ this.name =name; this.age =age; } //重载构造方法 public Student(){ this("田佳伟怪兽",25); } public void Info(){ System.out.println(this.name+"是学生,"+"年龄是"+this.age); } public static void main(String []args){ //实例化对象 Student stu1 = new Student(); Student stu2 = new Student("田佳伟",30); stu1.Info(); stu2.Info(); } }
从上面的java中定义的方法格式可以看出我们可以向方法中传参数,这样就会产生值传递和引用传递。
具体概念和用法如下
值传递:值传递适用于Java的基本数据类型(8个)+String类型。
也就是说在传递的过程中本身的值是不会被改变的
先看实例
//定义一个Student类 public class Student{ private String name; private int age //构造方法重载 public Student(String n,int a){ name = n; age = a; } public void Info(int score ){ score = 40; System.out.println(this.name+"是学生,"+"年龄是"+this.age+"学分是:"+score); } public static void main(String []args){ //实例化对象 Student stu1 = new Student("田佳伟",30); int score = 30 stu1.Info(); System.out.println("学分"+score); } }
从上述结果中就可以看到值传递是单向的,本身的值是不会被改变;
引用传递:引用传递适用于java引用类型(类,接口,抽象类和数组),也可以叫做对象类型,类类型,...
传递后值是会改变的。
实例
//定义一个Student类 public class Student{ private String name; private int age //构造方法重载 public Student(String n,int a){ name = n; age = a; } public void Info(Source sur){ sur.getName(sur.setName("英语")) ; System.out.println(this.name+"是学生,"+"年龄是"+this.age+"课程是:"+sur.getName()); } public static void main(String []args){ //实例化对象 Student stu1 = new Student("田佳伟",30); stu1.Info(); } } //定义一个source类 class Source { //定义一个name属性 private String name; //构造方法 public Source(String name){ this.name = name; } //设置姓名的方法 public void setName(String name){ this.name = name; } //获得姓名的方法 public String getName(){ this.name; } }
相关推荐
### Java中的类和对象总结 #### 一、类与对象的概念 在面向对象编程中,类(Class)和对象(Object)是两个核心概念。类是对象的抽象模板,它定义了对象的数据结构(即属性)和行为(即方法)。而对象则是类的具体...
- **类定义**: C++中用来描述一类对象的共同特征和行为的概念。它是一个抽象数据类型,包含了数据成员和成员函数。 - **成员函数**: 定义在类中的函数,用于实现类的行为。 - **数据成员**: 定义在类中的变量,用于...
本次实验的目的是深入理解和掌握Java编程语言中的类与对象的概念,通过设计和实现一系列几何图形类,包括点、直线、三角形、矩形、正方形、圆形和椭圆,来实践面向对象的设计方法。实验要求学生不仅能够创建数据域和...
总结来说,Java的类与对象是实现面向对象编程的基础,它们帮助我们构建可重用、可扩展的代码结构。理解并熟练掌握这些概念对于成为一个合格的Java开发者至关重要。通过阅读“浅谈Java的类与对象”这篇文档,你将能更...
总结,类和对象是构建复杂软件系统的基石。熟练掌握它们的概念、使用方式以及相关特性,对于理解和编写高质量的面向对象程序至关重要。通过不断的实践和学习,我们可以逐步提升在OOP领域的专业技能。
4. 学习类的组合,了解一个类如何包含其他类的对象。 通过这三个实例,学习者能够实践并理解面向对象编程的关键概念,这在实际的软件开发中非常重要。调试过程则帮助学习者深入理解代码的执行流程,从而更好地调试...
- 结论:总结实验的经验教训,讨论面向过程与面向对象编程的区别,以及在解决实际问题时的选择。 这个实验有助于学生深入理解Java类的设计和使用,以及面向对象编程的基本概念。通过创建和使用自定义类,学生能够更...
C#是一种面向对象的编程语言,其核心概念之一就是类与对象之间的关系。类是对象的模板或蓝图,它定义了创建对象的属性和方法。对象则是类的具体实例,是实际存在的实体。 在C#中,创建类意味着定义了一组属性和方法...
在本实验"3类与对象基础实验(一)"中,我们主要探讨的是Java编程语言中的核心概念——类和对象。这个实验是针对浙江大学城市学院2009级学生的,旨在帮助他们深入理解和掌握面向对象编程的基础。 首先,我们要了解...
总结,类对象和类指针在不同场景下各有优势。类对象更适合于轻量级对象和效率要求高的场合,而类指针则适用于需要动态绑定和管理大量对象的情况。理解并熟练运用这两种方式,能够帮助我们更好地设计和实现面向对象的...
类与对象实验报告 在 C++ 编程语言中,类和对象是两个非常重要的概念,它们是面向对象编程的基础。类是对对象的抽象描述,而对象则是类的实例化。今天,我们将通过一个实验来学习如何定义类、对象,并使用它们来...
### 第十章 类与对象 —— C++ 重难点知识详解 #### 一、引言 C++ 是一种广泛应用于工业界的编程语言,它既继承了 C 语言的强大功能,又引入了面向对象编程(OOP)的概念。面向对象编程的核心在于类与对象的设计与...
在这篇文章中,我们将总结了使用类的对象还是指针的主要区别和使用场景,希望能够帮助有疑问的朋友更好地理解和应用。 首先,我们需要了解类的对象和指针的存储空间上的区别。使用new关键字创建的对象存储在堆上,...
1. 类与对象:在Python中,一旦类定义完成,类本身就是一个对象,称为类对象。可以对类对象进行操作,如访问其方法和属性。而对象实例化是指创建类对象的实例,也即对象。每个对象在创建时都会自动获得一个指向自己...
本篇文章将深入探讨类与对象以及构造方法的相关知识点。 首先,类是对象的蓝图,它定义了一组特性和行为。在Java中,类是用来创建对象的模板,它包含变量(也称为属性或成员变量)和方法(函数)。例如,`Student....
### Java面向对象总结 #### 一、继承 继承是面向对象编程中的一个重要概念,它允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现了代码的复用。 1. **子类继承父类就拥有了父类的属性和方法**:当一...
一、实验目的 1.通过对所选题目相关需求的分析,掌握需求分析的方法和过程; 2.掌握需求分析相关文档的组织规范; 3. 完成一个小型软件系统的需求分析。
JSP 内置对象 Session 总结 Session 对象是一种 JSP 内置对象,用于管理客户端与服务器端之间的会话期。下面是 Session 对象的详细介绍。 什么是 Session Session 对象是一个 JSP 内置对象,它在第一个 JSP 页面...
总结来说,类和对象是面向对象编程的核心,它们定义了软件组件的结构和行为。通过合理地设计和实现类与对象,我们可以构建出复杂、模块化的软件系统。在开发过程中,借助源码管理和开发工具,我们可以更高效地实现和...