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.*;

* 发哥讲*

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

● 扫码关注我们

3、Java 对象和类的更多相关文章

  1. Java-Runoob:Java 对象和类

    ylbtech-Java-Runoob:Java 对象和类 1.返回顶部 1. Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 ...

  2. (五)Java 对象和类

    Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 消息解析 本节我们重点研究对象和类的概念. 对象:对象是类的一个实例,有状态和行为. ...

  3. Java 教程 (Java 对象和类)

    Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 本节我们重点研究对象和类的概念. 对象:对象是类的一个实例(对象不是找个女朋友 ...

  4. JavaSE基础(十二)--Java 对象和类

    Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 本节我们重点研究对象和类的概念. 对象:对象是类的一个实例(对象不是找个女朋友 ...

  5. Java对象转xml报文和xml报文转Java对象帮助类

    import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marsha ...

  6. java对象和类学习

    定义对象的类: 一个对象的状态(属性或特征)是指那些具有他们当前值的数据域 一个对象的行为是由方法定义的,调用对象的方法就是完成对象的一个动作 使用一个通用类来定义同一类型的对象.类是一个模板,一个对 ...

  7. Java对象与类中的一个小练习

    一直在Eclipse里做练习.是做一个练习,执行一个的那种.刚刚学习了Java的对象与类,练习中把类和执行放在同一包下的两个.java文件里面了.是可以执行的.(Get) 相关代码: public c ...

  8. JAVA对象和类

    Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 Java中的类 类可以看成是创建Java对象的模板. 通过下面一个简单的类来理解下Java中类的定 ...

  9. 重新学习Java——对象和类(二)

    上一节回归了如何以面向对象的思想去使用一些Java中的公共类,也设计了一些自己的类并介绍了设计类的基本方法和技巧,这一节我们将继续回顾这些内容,并争取从中获得新的体验和感受. 1. 静态域与静态方法 ...

  10. 重新学习Java——对象和类(一)

    之前通过记笔记的方法,对于<Java核心技术>这本书的前一章进行了重新的复习,感觉效果很好,比单独看书带来了更好的复习效果,了解了很多以前不是很注意的一些细节,但是在一些自己较为熟悉的地方 ...

随机推荐

  1. mysql练习题99

    一.查询每个专业的学生人数 SELECT COUNT(*) FROM student GROUP BY majorid; 二.查询参加考试的学生中,每个学生的平均分.最高分 SELECT avg(sc ...

  2. Quartz.Net系列(十二):六大Calendar(Annual、Cron、Daily、Holiday、Monthly、Weekly)

    Quartz.Net中为了动态排除一些时间,而使用Calendar可以做到 1.DailyCalendar 可以动态的排除一天中的某些时间段 示例:在一天当中的13:00到14:00不要执行 publ ...

  3. golang第一天--安装

    先上吉祥物 安装 下载链接:https://studygolang.com/dl 下载好之后开始安装 next.next.next,选择好目录.next.等待.finish. 成了!! 配置环境变量: ...

  4. 太实用了!自己动手写软件——GUI编程

    这几天我有一个想法就是将我之前做测试写的一些协议脚本(如:ssh.FTP.SMTP.MySQL.Oracle等)综合在一起做一个密码PJ器,这么多的协议放在一起,每个协议都有自己特殊的参数,如果还是和 ...

  5. equals方法与==关系的总结

    /** * ==&&equals区别 * * ==比较的是栈内存中的值 * 对于基本类型数据,比较的是栈内存中的值 * 对于引用数据类型,比较的是栈内存中的值(值的真是含义是一个地址) ...

  6. xss利用

    xss盗取cookie 什么是cookie cookie是曲奇饼,啊开个玩笑,cookie是每个用户登录唯一id和账号密码一样可以登录到网站,是的你没有听错cookie可以直接登录,至于服务器怎么设置 ...

  7. JAVA面向对象:三大特征 封装讲解

    一.JAVA封装 1.封装的理解 封装是 JAVA 面向对象思想的 一 种特性,也是一种信息隐蔽的技术 2.封装的原则 将类中的某些信息隐藏起来,来防止外部程序直接访问,通过类中的方法实现对隐藏的信息 ...

  8. Python基础-异常

    异常捕获 常见异常类型 Exception:顶级异常类,大部分异常类都是它的子类.SyntaxError:语法错误TypeError:类型错误ValueError:值错误NameError:找不到名称 ...

  9. Presto性能调优的五大技巧

    概述 Presto架构 Presto是一个分布式的查询引擎,本身并不存储数据,但是可以接入多种数据源,并且支持跨数据源的级联查询. Presto的架构分为: Coodinator:解析SQL语句,生成 ...

  10. ‘100%’wuxiao

    有时候设置控件的width:’100%‘无效,  群友解释, 因为父控件的大小要靠自空间撑起来,确定    ??????