类必须先定义才能使用。类是创建对象的模板,创建对象也叫类的实例化。 
下面通过一个简单的例子来理解Java中类的定义:

public class Dog {
String name;
int age; void bark()//汪汪叫
{
System.out.println("汪汪,不要过来");
}
void hungry()
{
System.out.println("主人,我饿了");
}
}

对示例的说明:

1.public 是类的修饰符,表明该类是公共类,可以被其他类访问。
2.class 是定义类的关键字。
3.Dog是类的名称。
4.name,age是类的成员变量,也叫属性;bark(),hungry()是类中的函数,也叫方法。
一个类可以包含以下类型变量:
1.局部变量:在方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
2.成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化(分配内存)。成员变量可以被类中的方法和特定类的语句访问。
3.类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。static也是修饰符的一种。

构造方法
在类实例化的过程中自动执行的方法叫做构造方法,它不需要你手动调用。构造方法可以在类实例化的过程中做一些初始化的工作。

构造方法的名称必须与类的名称相同,并且没有返回值。

每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认的构造方法。

public class Dog {
String name;
int age; //构造方法,没有返回值
Dog(String name1,int age1)
{
name = name1;
age = age1;
System.out.println("感谢主人领养了我");
} //普通方法,必须有返回值
void bark()
{
System.out.println("汪汪,不要过来");
} void hungry()
{
System.out.println("主人,我饿了");
} public static void main(String[] args)
{
//创建对象时传递的参数要与构造方法参数列表对应
Dog myDog = new Dog("花花",3);
}
}

运行结果:

public class People
{
String name;
String sex;
int age; //无参的构造方法(可以不写编译器自动加上,前提是没有任何其他构造方法)
People(){} //有参的构造方法
People(String name,String sex,int age)
{
this.name = name;
this.sex = sex;
this.age = age;
} //部分初始化
People(String name)
{
this.name = name;
} People(String name,int age)
{
this.name = name;
this.age = age;
}
public static void main(String[] args)
{
People p = new People();
System.out.println(p.name);
System.out.println(p.sex);
System.out.println(p.age); People p1 = new People("张三","男",30);
System.out.println(p1.name+","+p1.sex+","+p1.age); People p2 = new People("老王");
System.out.println(p2.name); People p3 = new People("小老虎",3);
System.out.println(p3.name+","+p2.age);
}
}

说明:

  • 构造方法不能被显式调用。
  • 构造方法不能有返回值,因为没有变量来接收返回值

创建对象
对象是类的一个实例,创建对象的过程也叫类的实例化。对象是以类为模板来创建的。
在Java中,使用new关键字来创建对象,一般有以下三个步骤:

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

Dog myDog;//声明一个对象

myDog = new Dog("花花",3);//实例化

Dog myDog = new Dog("花花",3);

访问成员变量和方法

通过已创建的对象来访问成员变量和成员方法,例如:

//实例化 Dog myDog = new Dog("花花",3);

//通过点号访问成员变量 myDog.name;

//通过点号访问成员方法 myDog.bark();

案例:

public class Dog
{
String name;
int age; Dog(String name1,int age1)
{
name = name1;
age = age1;
System.out.println("感谢主人领养了我");
} void bark()
{
System.out.println("汪汪,不要过来");
} void hungry()
{
System.out.println("主人,我饿了");
} public static void main(String[] args)
{
Dog myDog = new Dog("花花",3);
//访问成员变量
String name = myDog.name;
int age = myDog.age;
System.out.println("我是一只小狗,我名字叫" + name + ",我" + age + "岁了");
//访问方法
myDog.bark();
myDog.hungry();
}
}

运行结果:

参考:https://blog.csdn.net/yongchaocsdn/article/details/53572983

《Java基础知识》Java类的定义及其实例化的更多相关文章

  1. JAVA基础知识|java虚拟机(JVM)

    一.JVM简介 java语言是跨平台的,兼容各种操作系统.实现跨平台的基石就是虚拟机(JVM),虚拟机不是跨平台的,所以不同的操作系统需要安装不同的jdk版本(jre=jvm+类库:jdk=jre+开 ...

  2. java基础知识——Java的定义,特点和技术平台

    (作者声明:对于Java编程语言,很多人只知道怎么用,却对其了解甚少.我也是其中一员.所以菜鸟的我,去查询了教科书以及大神的总结,主要参考了<Java核心技术>这本神作.现在分享给大家!) ...

  3. [java基础知识]java安装步骤

    jre:  java运行环境.  jre =  java虚拟机 + 核心类库(辅助java虚拟机运行的文件).如果只是运行java程序,只需要安装jre.    jdk: java开发工具集   jd ...

  4. java 基础知识九 类与对象

    java  基础知识九  类与对象 1.OO(Object–Oriented )面向对象,OO方法(Object-Oriented Method,面向对象方法,面向对象的方法)是一种把面向对象的思想应 ...

  5. java 基础知识(java web 方面的)

    1.java面向对象的基本特征:封装性,多态性,继承性. 2.Java的泛型:iterator接口主要有hasnext()方法,next()方法,remove()方法:collection接口继承了i ...

  6. [转] Java基础知识——Java语言基础

    http://blog.csdn.net/loneswordman/article/details/9905931 http://blog.csdn.net/wanghuan203/article/d ...

  7. java基础知识精华

    转载:https://www.jianshu.com/p/6c078abb720f java基础知识 java内存模型 java运行时数据区域 hashMap 如何解决冲突 存储方式 冲突达到一定数量 ...

  8. 第二十九节:Java基础知识-类,多态,Object,数组和字符串

    前言 Java基础知识-类,多态,Object,数组和字符串,回顾,继承,类的多态性,多态,向上转型和向下转型,Object,数组,多维数组,字符串,字符串比较. 回顾 类的定义格式: [类的修饰符] ...

  9. java基础知识回顾之---java String final类普通方法

    辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /*     * 按照面向对象的思想对字符串进行功能分类.     *      ...

  10. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

随机推荐

  1. Java开发中常用jar包整理及使用

    本文整理了我自己在Java开发中常用的jar包以及常用的API记录. <!-- https://mvnrepository.com/artifact/org.apache.commons/com ...

  2. Windows 10上源码编译Poco并编写httpserver和tcpserver | compile and install poco cpp library on windows

    本文首发于个人博客https://kezunlin.me/post/9587bb47/,欢迎阅读! compile and install poco cpp library on windows Se ...

  3. Java实现AES加密解密

    之前常用两种加密算法:Base64和Md5,前者容易破解,后者不可逆. AES采用对称加密方式,破解难度非常大,在可逆的基础上,能很好的保证数据的安全性. 这里介绍Java中实现AES加密算法的加密与 ...

  4. 【论文阅读】Diverse Image-to-Image Translation via Disentangled Representations(ECCV2018 oral)

    目录 相关链接 方法亮点 相关工作 方法细节 实验结果 总结与收获 参考文献 相关链接: 论文:https://arxiv.org/abs/1808.00948 代码:https://github.c ...

  5. python中return和print的区别

    之前遇到这个问题,就试着对比几种不同的结果,总结啦一下return和print的区别. 总结: return的作用之一是返回计算的值print的作用是输出数据到控制端 在第一个结果中什么都没有输出:在 ...

  6. SpringIoc以及set注入八种基本类型的简单实现

    SpringIoc以及set注入八种基本类型的简单实现 主要涉及到的技术以及API 反射.xml定义和解析.树模型 反射可以在代码运行状态下动态的创建对象以及调用方法. API:Dom4j.Class ...

  7. django的开发环境

    推荐linux系统(因为程序员大佬都是用的linux) 虚拟机:vmware  或者virtualbox(官网下载) linux:Ubuntu 使用双系统也可以 虚拟化技术: 1.虚拟机  (全套的系 ...

  8. Hbase初识

    简介 数据模型 相关数据库 典型应用 优势 劣势 key-value Redis 缓存 快速查询 存储数据缺乏结构化 列族 Cassandra,Hbase 分布式的文件系统,大规模的数据存储 易于分布 ...

  9. 【数据结构】之顺序表(Java语言描述)

    之前总结过使用C语言描述的顺序表数据结构.在C语言类库中没有为我们提供顺序表的数据结构,因此我们需要自己手写,详细的有关顺序表的数据结构描述和C语言代码请见[我的这篇文章]. 在Java语言的JDK中 ...

  10. 部署kube-proxy组件

    目录 前言 创建kube-proxy证书签名请求 创建和分发 kubeconfig 文件 创建kube-proxy配置文件 分发和创建kube-proxy配置文件 创建和分发 kube-proxy s ...