类必须先定义才能使用。类是创建对象的模板,创建对象也叫类的实例化。 
下面通过一个简单的例子来理解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多线程,多线程加锁以及Condition类的使用

    看了网上非常多的运行代码,很多都是重复的再说一件事,可能对于java老鸟来说,理解java的多线程是非常容易的事情,但是对于我这样的菜鸟来说,这个实在有点难,可能是我太菜了,网上重复的陈述对于我理解这 ...

  2. 笔记本进入BIOS设置

    转眼间,到大三了. 在学习<Red Hat Linux 服务器搭建与管理>这门课时,刚开学第一节,就是虚拟机,但是最烦恼的是我们笔记本电脑的默认设置,它把虚拟化给禁止了. 1,首先,我们需 ...

  3. CentOS7中安装MariaDB

    什么是mariaDB? 在线安装(慢的要命) RPM离线安装(CentOS7.X) 在线安装 打开官方网站 https://mariadb.org/ 点击Download,跳转到下一页面 继续点击Do ...

  4. Python-beautifulsoup库

    #beautifulsoup库的安装 pip install beautifulsoup4 python -m pip install --upgrage pip from bs4 import Be ...

  5. AI手写输入法 - pytorch从入门到入道(二)

    本章承接上一篇的手写数字识别,利用训练好的模型,结合pyqt画板,实现简易手写输入法,为"hello world"例子增添乐趣. pyqt是开发图形界面的框架,可以百度查找相关资料 ...

  6. 浅谈集群版Redis和Gossip协议

    昨天的文章写了关于分布式系统中一致性哈希算法的问题,文末提了一下Redis-Cluster对于一致性哈希算法的实现方案,今天来看一下Redis-Cluster和其中的重要概念Gossip协议. 1.R ...

  7. 简单聊一聊spring cloud stream和kafka的那点事

    Spring Cloud Stream is a framework for building highly scalable event-driven microservices connected ...

  8. 2019-2020-7 20199317《Linux内核原理与分析》第七周作业

    第6章  进程的描述和进程的创建 1  进程的描述       操作系统内核实现操作系统的三大管理功能,即进程管理.内存管理和文件系统.其中,操作系统内核中最核心的功能是进程管理.为了管理进程,内核要 ...

  9. webpack4.0安装及使用(一)

    前言  1.什么是webpack 本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构建 ...

  10. 【并发技术16】线程同步工具Exchanger的使用

    如果两个线程在运行过程中需要交换彼此的信息,比如一个数据或者使用的空间,就需要用到 Exchanger 这个类,Exchanger 为线程交换信息提供了非常方便的途径,它可以作为两个线程交换对象的同步 ...