JAVA 类和对象基础知识详解

/*文章中用到的代码只是一部分,需要源码的可通过邮箱联系我 [email protected]*/

和C++一样,JAVA也是一门面向对象的语言,其基础和核心是类和对象。而面向对象的思想是来源与显示生活,自然在学习时联系现实生活会理解得更深。

1.对象

  首先,什么是对象?

    在现实生活中只要是一个具体的物体或者一个具体的事物就是一个对象。你所看到的任何一个物体,你所想的任何一个物体都是对象,比如:某一台电脑,某一个人

  其次,知道了什么是对象之后便是去描述。你会从哪些方面去描述对象?分别有些什么内容呢?

      某一台电脑
       特征:大小、材质、形状、颜色、CPU、显卡、内存、硬盘、品牌、...
       功能:显示、散热、计算、输入、开机、关机、...
   
       某一个人
       特征:身高、体重、外貌、年龄、性别、姓名、户籍、爱好、特长、...
       行为:吃饭、睡觉、学习、编程、工作、玩、走路、说话、...

2.类的组成

    现实生活中是怎样对对象进行分类的呢?
      根据对象相似的特征和相似的行为(功能、用途)进行分类;生活中的类是抽象的。
  
    程序中的类是怎样的呢?
      程序中的类是根据现实生活中对象的特征和行为(功能/用途),按照程序中类的固定格式进行的抽象定义。
      程序中的类是由两个部分组成:1.属性    2.方法
      属性是根据对象的特征进行定义的;
      Java中类的方法分为两种:1.普通方法   2.构造方法
      普通方法是根据对象的行为(功能、用途)进行定义的。
3.类的基本结构

  public class 类名  {
      //定义属性
      访问修饰符  数据类型  属性名;
  
      //定义普通方法的格式
      访问修饰符  返回值数据类型  方法名(数据类型  参数名,...){  
      }
   }  
   类在Java中只是模板,基本单位,所以不能使用类调用属性和方法,要调用属性和方法需在main函数中进行。

  

 1 public class Student {
 2         //属性
 3     private String name;
 4
 5     private int scro;
 6
 7     //构造方法
 8     public Student()
 9     {
10         //this("未知名字","Java");
11         scro=0;
12     }
13     //普通方法
14     public void setName(String n)
15     {
16         name=n;
17     }
18
19 }

Student类

4.实例化对象和调用属性方法的格式
   实例化对象的关键字:new
   格式:
    类名  对象名  =  new  类名();
    类名 对象名  = new  构造方法(参数值,...);
  
   调用属性和方法的格式:
    对象名.属性名
    对象名.方法名(参数值,...);

 1 public class Student {
 2     private int scro;
 3
 4     public Student()
 5     {
 6         scro=0;
 7     }
 8
 9
10     public void study()
11     {
12         scro++;
13         System.out.println(name+"学习中");
14     }
15
16     public static void main(String [] args)
17     {
18         Student st1=new Student();//实例化
19         st1.study();//方法调用
20     }
21 }

5.构造方法
     定义构造方法的格式:
      访问修饰符  构造方法名(数据类型  参数名,...){
  
      }
      注意:

      1.类会默认提供一个无参数的构造方法;但如果在类中自定义了构造方法,默认的构造方法会被覆盖,无法再继续使用,只能使用你自定义的构造方法。
        2.构造方法不能定义返回值数据类型;
        3.构造方法的名字必须要和类名完全一致。
     构造方法的用途:
        1.实例化对象;
        2.可以给属性设置初始值。

 1 public class Student {
 2     private String name;
 3
 4     private int scro;
 5
 6     public Student()
 7     {
 8         scro=0;
 9     }
10
11     public Student(String name)
12     {
13         //this(name,"Java");
14         this.name=name;
15         scro=0;
16     }
17
18 }

构造方法

6.方法重载

  和C++中函数重载一样,JAVA中也可以进行方法的重载。

  实现方法重载的条件是:
      1.方法名相同
      2.参数的类型、个数、顺序一定要不同
    会根据方法的参数来决定调用不同的方法。

 1 public class Student {
 2
 3     public Student()
 4     {
 5         //this("未知名字","Java");
 6         scro=0;
 7     }
 8
 9     public Student(String name)
10     {
11         //this(name,"Java");
12         this.name=name;
13         scro=0;
14     }
15
16 }

7.this关键字

  与C++相同,在类的方法中调用属性时,若参数名与属性名相同,可使用this.加以区分

  另 this(参数值,...);   调用对应参数的构造方法。

  那么this到底指的是谁呢?
    谁在调用方法,方法中的this就表示谁。假设a对象名在调用方法,那么方法中的this表示a,如果换成b对象名在调用方法,方法中的this表示b。类似于生活中的"我"这个词。

 1 public class Student {
 2     private String name;
 3
 4     private int scro;
 5
 6     public Student()
 7     {
 8         this("Java");
 9         scro=0;
10     }
11
12     public Student(String name)
13     {
14         this.name=name;
15         scro=0;
16     }
17
18 }

this关键字

原文地址:https://www.cnblogs.com/csu-lmw/p/9248168.html

时间: 2024-11-10 07:41:32

JAVA 类和对象基础知识详解的相关文章

Python基础知识详解 从入门到精通(七)类与对象

本篇主要是介绍python,内容可先看目录其他基础知识详解,欢迎查看本人的其他文章Python基础知识详解 从入门到精通(一)介绍Python基础知识详解 从入门到精通(二)基础Python基础知识详解 从入门到精通(三)语法与函数Python基础知识详解 从入门到精通(四)列表.元组.字典.集合Python基础知识详解 从入门到精通(五)模块管理Python基础知识详解 从入门到精通(六)文件操作PS:很多人在学习Python的过程中,往往因为遇问题解决不了或者没好的教程从而导致自己放弃,为此

Servlet基础知识详解

Servlet基础知识详解 Servlet基础知识详解 Servlet程序执行全过程 Servlet映射路径 Servlet映射练习 Servlet生命周期 为什么要学习Servlet生命周期 Servlet重要的生命周期方法 模拟通过反射构造Servlet对象 Servlet单实例多线程 Servlet留给开发者的init方法 Servlet中核心对象学习 HttpServletRequest对象 HttpServletResponse对象 ServletConfig对象 ServletCon

RabbitMQ,Apache的ActiveMQ,阿里RocketMQ,Kafka,ZeroMQ,MetaMQ,Redis也可实现消息队列,RabbitMQ的应用场景以及基本原理介绍,RabbitMQ基础知识详解,RabbitMQ布曙

消息队列及常见消息队列介绍 2017-10-10 09:35操作系统/客户端/人脸识别 一.消息队列(MQ)概述 消息队列(Message Queue),是分布式系统中重要的组件,其通用的使用场景可以简单地描述为: 当不需要立即获得结果,但是并发量又需要进行控制的时候,差不多就是需要使用消息队列的时候. 消息队列主要解决了应用耦合.异步处理.流量削锋等问题. 当前使用较多的消息队列有RabbitMQ.RocketMQ.ActiveMQ.Kafka.ZeroMQ.MetaMq等,而部分数据库如Re

ExtJS教程(2)--- Javascript类和对象基础知识

Javascript中的类其实就是一个function 如下面定义一个Person类 //定义一个类 function Person(){ this.name = 'jaune'; this.age = 18; } //创建一个对象 var person1 = new Person(); console.log(person1); /* * 控制台打出以下内容 * Person {name: "jaune", age: 18} */ 上面是一个简单的定义类及创建类的方法 //定义一个带

RabbitMQ基础知识详解

RabbitMQ基础知识详解 2017年08月28日 20:42:57 dreamchasering 阅读数:41890 标签: RabbitMQ 什么是MQ? MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取队列中的消息. RabbitMQ是MQ的一种.下面详细介绍一下RabbitMQ的基本概念. 1.队列.生产者.消费者 队列是RabbitMQ的内部对象,用于存

Java网络编程一:基础知识详解

网络基础知识 1.OSI分层模型和TCP/IP分层模型的对应关系 这里对于7层模型不展开来讲,只选择跟这次系列主题相关的知识点介绍. 2.七层模型与协议的对应关系 网络层   ------------     IP(网络之间的互联协议) 传输层   ------------     TCP(传输控制协议).UDP(用户数据报协议) 应用层   ------------     Telnet(Internet远程登录服务的标准协议和主要方式).FTP(文本传输协议).HTTP(超文本传送协议) 3

Java 基础知识详解

由于有C#的基础,Java的基础知识基本是略过,这里当做复习一遍吧! Java的三种技术架构: JavaEE:(Java PlatForm Enterprise Edition) Java开发企业级的应用,主要针对Web JavaSE;(Java PlatForm  Standard Edition) 完成桌面程序的开发,是其他两个的基础 JavaME:(Java PlatForm Micro Edition)开发电子消费产品和嵌入式设备,如Android Java数据类型 (1)基本数据类型(

jsp基础知识详解

简介: JSP全称是JavaServer Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写html,但: 它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据. 相比servlet而言,servlet很难对数据进行排版,而jsp除了可以用java代码产生动态数据的同时,也很容易对数据进行排版. 不管是JSP还是Servlet,虽然都可以用于开发

Spring基础知识详解

Spring 概述 1. 什么是spring? Spring 是个java企业级应用的开源开发框架.Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用.Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯. 2. 使用Spring框架的好处是什么? 轻量:Spring 是轻量的,基本的版本大约2MB. 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们. 面向切面的