博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java基础知识: day3-对象和类
阅读量:6892 次
发布时间:2019-06-27

本文共 2131 字,大约阅读时间需要 7 分钟。

java对象和类

  • 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
  • 类:类是一个模板,它描述一类对象的行为和状态。

Java中的类

类可以看成是创建Java对象的模板。

一个类可以包含以下类型变量:

  • 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。

  • 成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。

  • 类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。

一个类可以拥有多个方法,在上面的例子中:say()、hungry()和sleeping()都是Person类的方法。

构造方法

每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。 在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。

创建对象

对象是根据类创建的。在Java中,使用关键字new来创建一个新的对象。创建对象需要以下三步:

  • 声明:声明一个对象,包括对象名称和对象类型。
  • 实例化:使用关键字new来创建一个对象。
  • 初始化:使用new创建对象时,会调用构造方法初始化对象。

源文件声明规则

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

  • 一个源文件中只能有一个public类
  • 一个源文件可以有多个非public类
  • 源文件的名称应该和public类的类名保持一致。例如:源文件中public类的类名是Employee,那么源文件应该命名为Employee.java。
  • 如果一个类定义在某个包中,那么package语句应该在源文件的首行。
  • 如果源文件包含import语句,那么应该放在package语句和类定义之间。如果没有package语句,那么import语句应该在源文件中最前面。
  • import语句和package语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明。

Java包

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

Import语句

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

举个栗子

通过下面一个简单的类来理解下Java中类的定义:

package day3;public class Person {    static String staticStr = "我的类变量";    private String name;    private String sex;    private int age;    public Person() {    }    public Person(String name, String sex, int age) {        this.name = name;        this.sex = sex;        this.age = age;    }    public void sayHello() {        String str = "我是局部变量";        System.out.println("你好,世界~ " + str);    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getSex() {        return sex;    }    public void setSex(String sex) {        this.sex = sex;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    @Override    public String toString() {        return "Person{" +                "name='" + name + '\'' +                ", sex='" + sex + '\'' +                ", age=" + age +                '}';    }}复制代码

转载于:https://juejin.im/post/5c9360ddf265da612f1b9890

你可能感兴趣的文章
nginx + fastDFS 设置开机自动启动
查看>>
Apapche 获取真实IP地址方法
查看>>
Mysql 常用命令总结
查看>>
《vi和vim》 学习手记(1)
查看>>
Github最简单实用的Git命令指南
查看>>
11.1. 框架安装
查看>>
C# 加载 SQLite DLL问题
查看>>
[LeetCode] Binary Search Tree Iterator
查看>>
/bin/bash: [xxxx]: command not found
查看>>
第 1 章 Redis
查看>>
gridview安卓实现单行多列横向滚动
查看>>
如何玩转小程序 - 36氪【私享Kr】杨晶生分享笔记
查看>>
根据轨迹线构造GPS点的方法
查看>>
自制mpls ldp实验
查看>>
理解容器之间的连通性 - 每天5分钟玩转 Docker 容器技术(34)
查看>>
空间换时间,轻松提高性能100倍
查看>>
微软.Net 社区虚拟大会 -- 首日重点(dotnetConf 2016)
查看>>
6.2、Android Studio内存
查看>>
Redis——Redis与Log4Net完成了分布式日志记录
查看>>
浅谈线程
查看>>