首页 > 编程语言 >Java语言的基本元素:类和对象

Java语言的基本元素:类和对象

时间:2023-04-16 23:11:45浏览次数:35  
标签:Java 语言 对象 void 元素 class Person public 属性

引入

人认识世界,其实就是面向对象的。比如,我们认识一下美人鱼(都没见过)

经过“仔细学习”,发现美人鱼通常具备一些特征:

  • 女孩
  • 有鱼尾
  • 美丽

这个总结的过程,其实是抽象化的过程。抽象出来的美人鱼的特征,可以归纳为一个美人鱼类。而图片中的都是这个类呈现出来的具体的对象。

类和对象概述

类(Class)和对象(Object)是面向对象的核心概念。

1、什么是类

:具有相同特征的事物的抽象描述,是抽象的、概念上的定义。

2、什么是对象

对象:实际存在的该类事物的每个个体,是具体的,因而也称为实例(instance)。

可以理解为:类 => 抽象概念的人;对象 => 实实在在的某个人

 

3、类与对象的关系错误理解

曰:“白马非马,可乎?”
曰:“可。”
曰:“何哉?”
曰:“马者,所以命形也。白者,所以命色也。命色者,非命形也,故曰白马非马。”

 

类的成员概述

面向对象程序设计的重点是类的设计。类的设计,其实就是类的成员的设计;现实世界的生物体,大到鲸鱼,小到蚂蚁,都是由最基本的细胞构成的。同理,Java代码世界是由诸多个不同功能的类构成的。

 

现实生物世界中的细胞又是由什么构成的呢?细胞核、细胞质、…

Java中用类class来描述事物也是如此。类,是一组相关属性和行为的集合,这也是类最基本的两个成员。

属性:该类事物的状态信息。对应类中的成员变量

  • 成员变量 <=> 属性 <=> Field

行为:该类事物要做什么操作,或者基于事物的状态能做什么。对应类中的成员方法

  • (成员)方法 <=> 函数 <=> Method

举例

面向对象完成功能的三步骤

步骤1:类的定义

类的定义使用关键字:class。格式如下:

[修饰符] class 类名{
    属性声明;
    方法声明;
}

举例1

public class Person{
    //声明属性age
    int age ;                       
    
    //声明方法showAge()
    public void eat() {        
        System.out.println("人吃饭");
    }
}

举例2

public class Dog{
    //声明属性
    String type; //种类
    String nickName; //昵称
    String hostName; //主人名称
    
    //声明方法
    public void eat(){ //吃东西
        System.out.println("狗狗进食");        
    }
}
public class Person{
    String name;
    char gender;
    Dog dog;
    
    //喂宠物
    public void feed(){
        dog.eat();
    }
}

步骤2:对象的创建

创建对象,使用关键字:new

创建对象语法:

//方式1:给创建的对象命名
//把创建的对象用一个引用数据类型的变量保存起来,这样就可以反复使用这个对象了
类名 对象名 = new 类名();

//方式2:new 类名()//也称为匿名对象
举例:
class PersonTest{
    public static void main(String[] args){
        //创建Person类的对象
        Person per = new Person();
        //创建Dog类的对象
        Dog dog = new Dog();
    }
}

步骤3:对象调用属性或方法

对象是类的一个实例,必然具备该类事物的属性和行为(即方法)。

使用"对象名.属性" 或 "对象名.方法"的方式访问对象成员(包括属性和方法)

举例1:

//声明Animal类
public class Animal { //动物类
    public int legs;

    public void eat() {
        System.out.println("Eating.");
    }

    public void move() {
        System.out.println("Move.");
    }
}
//声明测试类
public class AnimalTest {
    public static void main(String args[]) {
        //创建对象
        Animal xb = new Animal();
        xb.legs = 4;//访问属性
        System.out.println(xb.legs);
        xb.eat();//访问方法
        xb.move();//访问方法
    }
}

图示理解

 

 举例2:针对前面步骤1的举例2:类的实例化(创建类的对象)

public class Game{
    public static void main(String[] args){
        Person p = new Person();
        //通过Person对象调用属性
        p.name = "康师傅";
        p.gender = '男';
        p.dog = new Dog(); //给Person对象的dog属性赋值
        
        //给Person对象的dog属性的type、nickname属性赋值
        p.dog.type = "柯基犬";
        p.dog.nickName = "小白";
        
        //通过Person对象调用方法
        p.feed();
    }
}

标签:Java,语言,对象,void,元素,class,Person,public,属性
From: https://www.cnblogs.com/wdh01/p/17298316.html

相关文章

  • C语言中,取反运算符~a=-(a+1)的原因
    1、因为计算机直接拿读取到的数据去运算付出的代价是最小的,所以计算机存储的数据的形式应该满足读取后不必经过任何加工就能直接用来运算由于原码不经加工无法实现(+a)+(-a)=0,所以不满足该要求,为了满足(+a)+(-a)=0的要求,人们设计出了补码来满足该要求因而计算机中存储数据的形式......
  • C 语言版线程池
    一、初始线程池1.1何为线程池?我们先来打个比方,线程池就好像一个工具箱,我们每次需要拧螺丝的时候都要从工具箱里面取出一个螺丝刀来。有时候需要取出一个来拧,有时候螺丝多的时候需要多个人取出多个来拧,拧完自己的螺丝那么就会把螺丝刀再放回去,然后别人下次用的时候再取出来用。......
  • 原始java写的模拟HTTP请求 HttpsMethod
    原始java写的模拟HTTP请求packagecom.fc.utility;importjava.awt.image.BufferedImage;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.ByteArrayOutputStream;importjava.io.DataInputStream;importjava.io.DataOutputStream;importja......
  • Cypress之与元素交互
    Cypress之与元素交互元素定位选择器页面元素交互定位元素辅助方法可操作类型模拟键盘操作在介绍元素交互之前需要介绍一下命令日志:作用:展示额外的Log信息cy.route()cy.spy()cy.stub()Cypress特有的定位器data-*data-cydata-testdata-testidCyp......
  • 平衡二叉树——C语言描述——创建,增加结点
    平衡二叉树——C语言描述——创建,增加结点目录平衡二叉树——C语言描述——创建,增加结点0测试用例框架1定义2数据结构2增加平衡二叉树的结点(1)代码(2)测试用例0测试用例框架https://blog.csdn.net/m0_59469991/article/details/127137119?csdn_share_tail=%7B%22type%22%3A%2......
  • java 八股文
    目录一、Java基础篇1.接口和抽象类的区别2.重载和重写的区别3.==和equals的区别4.异常处理机制5.HashMap原理6.想要线程安全的HashMap怎么办?7.ConcurrentHashMap原如何保证的线程安全?8.HashTable与HashMap的区别9.ArrayList和LinkedList的区别10.如何保证ArrayList的线......
  • ES的Java API 操作(五)
    我看到希望,哪怕只有微小的一束光,我也会拼尽全力去寻找.上一章简单介绍了ES聚合查询(四),如果没有看过,请观看上一章我们之前都是使用Postman请求来操作索引,操作文档,查询数据的,这一章节,老蝴蝶使用JavaApi进行处理.一.简单的JavaAPIES环境搭建一.一添加pom.xml依赖......
  • 学习JavaScript 一
    文件引用在一个单独的js文件中也可以编写JavaScript代码,然后在HTML文件中使用script标签进行引用,以下是一个简单演示。   遍历对象枚举遍历对象中的属性,可以使用for…in语句循环,对象中有几个属性,循环体就会执行几次。语法格式:for(var变量in对象){}案例演示:......
  • Java继承与多态
    基本概念被继承的类称为基类或父类或超类,而新的类被称为派生类或子类。一般把基类和派生类实例的集合称作类继承层次结构。Java中的类只支持单一继承(即一个类只有一个父类)。在需要多重继承的场合,可以使用接口机制来实现。 子类会自动继承父类中的非private成员(是否继承静态......
  • Go 语言环境安装
    转载自:https://www.runoob.com/go/go-environment.html============= Go语言支持以下系统:LinuxFreeBSDMacOSX(也称为Darwin)Windows安装包下载地址为:https://golang.org/dl/。如果打不开可以使用这个地址:https://golang.google.cn/dl/。各个系统对应的包名:操......