Java中的类、对象、属性和方法之间的关系

基本属性

首先我们需要了解JAVA面向对象中有几点需要注意的:

  • Class
  • 对象 Object
  • 属性 Field
  • 方法 Method

Class

  类是什么?可以把类理解为一个系。如人、猫、车等。这个概念是抽象的,是没有实体的。
  也就是说类是只提供一些公共属性,但是这个属性是没有具体值的。这个时候就需要把类实例化,使其成为一个对象。
在这里插入图片描述

Object 对象

  前面说到了,一个Class类只是相当于一个框架而已,而具体的使用则需要创建一个对象,对框架里的属性进行具体的赋值。
  如:一个名为人的Class里面,提供了身高,年龄等属性。
这时候就需要把人类对象进行实例化并赋值。

人类

public class Man{
        private int age;//年龄
        private int height;//身高
        public void setAge(int age) {
            this.age = age;
        }

        public void setHeight(int height) {
            this.height = height;
        }
    }

实例化

public static void main(String[] args) {
        Man man = new Man();//通过一个类创建一个实例
        man.setAge(19);//设置年龄
        man.setHeight(182);//设置身高
  }

  通过setAge(int age)setHeight(int height) 方法就已经对一个人类的实例进行了描述,这样man的实例就可以代表一个具体的人了,就不再是抽象的一个人类了。

Field 属性

属性其实在上一个例子里已经使用到了

 public static class Man {
        private int age;//年龄属性
        private int height;//身高属性
        private String name;//姓名属性
   }

  一个类里特有的成员变量就可以理解成一个属性。
  如人类里的:年龄、身高、姓名等,这些变量被定义在Man这个类里,这三个变量就是人类所拥有的属性。

Method 方法

  方法就可以理解为一个具体的功能。如一部手机,可以用来打电话、发短信、拍照等。每一项独特的功能就可以理解为手机是拥有这些方法的。

public class Phone {
        private void sendMessage(String content) {
            System.out.println("发送短信内容为:" + content);
        }
    }

sendMessage(String content)就是为手机类里的一个特定方法。方法里是可以做具体的业务逻辑。


如上面的人类:

public static class Man {
        private int age;//年龄属性
        private int height;//身高属性
        private String name;//姓名属性

        //设置具体的年龄
        public void setAge(int age) {
            this.age = age;
        }

        //取出具体的年龄
        public int getAge() {
            return age;
        }
    }

这里通过setAge()方法给本来无具体值的age变量设置为了传进来的具体值。

一般对方法的调用都是 对象.方法

Phone iPhone=new Phone();
iPhone.sendMessage("明天去看蔡徐坤打球");

控制台输出为

"C:\Program Files\Java\jdk1.8.0_131\bin\java.exe" "-javaagent:D:\idea\IntelliJ IDEA 2020.2.3\lib\idea_rt.jar=53727:D:\idea\IntelliJ IDEA 2020.2.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_131\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\rt.jar;C:\Users\Administrator\IdeaProjects\ndd\out\production\ndd" com.company.Main
发送短信内容为:明天去看蔡徐坤打球

Process finished with exit code 0

面向对象是JAVA最重要也是最基础的,需要牢牢掌握。

  • 8
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值