zoukankan      html  css  js  c++  java
  • 3、Java 对象和类

    1、理解Java中的类和对象

    对象:

    作为学习计算机专业的很有意思,跟朋友开玩笑说,我有很多对象,没有就new一个。对象可以说是类的实例,通过类的构造方法得到的一个对象实例。它拥有此对象应有的行为与方法。例如:一只猫猫就是一个对象,他拥有颜色,姓名,蓝眼睛等状态,爬树,吃老鼠,吃猫粮,睡觉等行为。

    类:

    类是Java中常见且常用的,关键字为class。万物皆可以抽象为不同的类,类是对有相似行为、状态的一些实例的抽象。对象是一种个性的表示,表示一个独立的个体,每个对象拥有自己独立的属性,依靠属性来区分不同对象。

    举个例子:

    我们发的卷子出的题都是一样的 相当于一个类 ,而每个同学做的都相当于对象了

    造汽车的图纸相当于类,而造出来的汽车相当于对象了

    每个学校的老师是一个类,但是具体到每个老师就是对象了

     

    2、Java中的类

    直接看代码,我会解释!

    package cn.fage.three;

    /**
    * @author lin
    * @version 1.0
    * @date 2020-06-18 9:25
    * @Description 人
    */
    public class Person {
       /**
        * 姓名
        */
       String name;
       /**
        * 年龄
        */
       int age;
       /**
        * 国家
        */
       String nation;

       /**
        * 无参构造器
        */
       public Person() {
      }

       /**
        * 有参构造器
        *
        * @param name
        * @param age
        * @param nation
        */
       public Person(String name, int age, String nation) {
           this.name = name;
           this.age = age;
           this.nation = nation;
      }

       /**
        * 睡觉
        */
       public void sleeping() {
           System.out.println(this.name + " go to sleep");
      }

       /**
        * 吃东西
        */
       public void eat(String food) {
           System.out.println("国家来自 " + this.nation + " " + this.age + "岁的" + this.name + "喜欢吃" + food);
      }

       public static void main(String[] args) {
           Person p1 = new Person("张三", 7, "中国");
           Person p2 = new Person("jack", 6, "美国");
           String p1Name = p1.name;
           System.out.println("p1Name = " + p1Name);
           String p2Name = p2.name;
           System.out.println("p2Name = " + p2Name);
           p1.eat("糖果");
           p2.eat("巧克力");
           p1.sleeping();
           p2.sleeping();
      }
    }

    执行结果:

    p1Name = 张三
    p2Name = jack
    国家来自 中国 7岁的张三喜欢吃糖果
    国家来自 美国 6岁的jack喜欢吃巧克力
    张三 go to sleep
    jack go to sleep

    可以看出来自中国 7岁 的 张三喜欢吃糖果,来自美国 6岁的 jack 喜欢吃巧克力.

    Person 是类名

    name、age、nation 是 person类的基本属性

    eat()和sleep()是类中的俩个方法(行为)

    3、构造方法

    每个类都有一个默认的空参数的构造方法。比如:

        /**
        * 无参构造器
        */
       public Person() {
      }

       /**
        * 有参构造器
        *
        * @param name
        * @param age
        * @param nation
        */
       public Person(String name, int age, String nation) {
           this.name = name;
           this.age = age;
           this.nation = nation;
      }

    使用构造的原因:

    是为了得到类的实例。

    使用无参构造和有参构造能发生什么?

    1、都可以得到对应类的实例

    2、无参构造无法将基本属性赋值,有参构造可以使基本属性拥有值。

    4、创建对象实例

    在Java中做什么事都离不开实例,没有实例任何事情、行为都做不了。

            Person p1 = new Person("张三", 7, "中国");

    通过有参构造方法得到了p1 的 实例,操作p1可以得到他的基本属性,调用它的方法。

    在执行的过程中分为三步:

    声明、实例化、初始化

    有兴趣可以仔细研究

    5、访问实例变量(基本属性)和调用方法

    创建对象实例后,通过该实例可以访问变量,调用方法,比如:

        public static void main(String[] args) {
           Person p1 = new Person("张三", 7, "中国");
           Person p2 = new Person("jack", 6, "美国");
           String p1Name = p1.name;
           System.out.println("p1Name = " + p1Name);
           String p2Name = p2.name;
           System.out.println("p2Name = " + p2Name);
           p1.eat("糖果");
           p2.eat("巧克力");
           p1.sleeping();
           p2.sleeping();
      }

    6、源文件生命规则

    当在一个源文件中定义多个类,并且还有import语句和package语句时,要特别注意这些规则。

    • 一个源文件中只能有一个public类

    • 一个源文件可以有多个非public类

    • 源文件的名称应该和public类的类名保持一致。例如:源文件中public类的类名是Employee,那么源文件应该命名为Employee.java。

    • 如果一个类定义在某个包中,那么package语句应该在源文件的首行。

    • 如果源文件包含import语句,那么应该放在package语句和类定义之间。如果没有package语句,那么import语句应该在源文件中最前面。

    • import语句和package语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明。

    类有若干种访问级别,并且类也分不同的类型:抽象类和final类等。这些将在访问控制章节介绍。

    除了上面提到的几种类型,Java还有一些特殊的类,如:内部类、匿名类。

    7、Java包

    包主要用来对类和接口进行分类。当开发Java程序时,可能编写成百上千的类,因此很有必要对类和接口进行分类。

    8、Import语句

    在Java中,如果给出一个完整的限定名,包括包名、类名,那么Java编译器就可以很容易地定位到源代码或者类。Import语句就是用来提供一个合理的路径,使得编译器可以找到某个类。

    例如,下面的命令行将会命令编译器载入java_installation/java/io路径下的所有类

    import java.io.*;

    * 发哥讲*

     

     

    如果你觉得文章还不错,就请关注博主吧

     

    ● 扫码关注我们

  • 相关阅读:
    shell编程
    redis不重启,切换RDB备份到AOF备份
    java中接口和抽象类的区别
    java中的泛型
    java中有关初始化的问题
    java中的多态
    java中的Iterator和ListIterator的区别
    Collection集合的三种初始化方法
    java正则表达式appendReplacement和appendTail方法
    java中main函数的String[] args
  • 原文地址:https://www.cnblogs.com/naimao/p/13346430.html
Copyright © 2011-2022 走看看