java类的定义的实例_《Java基础知识》Java类的定义及其实例化

类必须先定义才能使用。类是创建对象的模板,创建对象也叫类的实例化。

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

public classDog {

String name;intage;void bark()//汪汪叫

{

System.out.println("汪汪,不要过来");

}voidhungry()

{

System.out.println("主人,我饿了");

}

}

对示例的说明:

1.public 是类的修饰符,表明该类是公共类,可以被其他类访问。

2.class 是定义类的关键字。

3.Dog是类的名称。

4.name,age是类的成员变量,也叫属性;bark(),hungry()是类中的函数,也叫方法。

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

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

2.成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化(分配内存)。成员变量可以被类中的方法和特定类的语句访问。

3.类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。static也是修饰符的一种。

构造方法

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

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

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

public classDog {

String name;intage;//构造方法,没有返回值

Dog(String name1,intage1)

{

name=name1;

age=age1;

System.out.println("感谢主人领养了我");

}//普通方法,必须有返回值

voidbark()

{

System.out.println("汪汪,不要过来");

}voidhungry()

{

System.out.println("主人,我饿了");

}public static voidmain(String[] args)

{//创建对象时传递的参数要与构造方法参数列表对应

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

}

}

运行结果:

de8be34e7185a6b8a7257ce1e295f51e.png

public classPeople

{

String name;

String sex;intage;//无参的构造方法(可以不写编译器自动加上,前提是没有任何其他构造方法)

People(){}//有参的构造方法

People(String name,String sex,intage)

{this.name =name;this.sex =sex;this.age =age;

}//部分初始化

People(String name)

{this.name =name;

}

People(String name,intage)

{this.name =name;this.age =age;

}public static voidmain(String[] args)

{

People p= newPeople();

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 classDog

{

String name;intage;

Dog(String name1,intage1)

{

name=name1;

age=age1;

System.out.println("感谢主人领养了我");

}voidbark()

{

System.out.println("汪汪,不要过来");

}voidhungry()

{

System.out.println("主人,我饿了");

}public static voidmain(String[] args)

{

Dog myDog= new Dog("花花",3);//访问成员变量

String name =myDog.name;int age =myDog.age;

System.out.println("我是一只小狗,我名字叫" + name + ",我" + age + "岁了");//访问方法

myDog.bark();

myDog.hungry();

}

}

运行结果:

0ea9a887237bb4bc988152fa4ca5c513.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/557900.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[问题]假定网络中的路由器B的路由表有如下的项目(这三列分别表示“目的网络”、“距离”和“下一跳路由器”):

[问题]假定网络中的路由器B的路由表有如下的项目(这三列分别表示“目的网络”、“距离”和“下一跳路由器”): N1 7 A N2 2 C N6 8 F N8 4 E N9 4 F 现在B收到从C发来的路由信息(这两列分别表示“目的网络”“距离”)&…

excel mysql插件_智分析Excel插件

智分析Excel插件官方版是一款好用的自助分析云平台,智分析Excel插件官方版是一款面向业务用户的EXCEL插件工具,智分析Excel插件官方版支持各类云端数据库、本地excel数据导入功能,软件能够将本地数据和线上数据结合起来分析。软件可以帮助办公…

controller中返回数据

1.返回ModelAndView 无敌的 带着数据返回路径 (不建议使用) 复制代码 2 //第一种返回ModelAndView 3 // //入门程序 第一 包类 类包 方法名 4 RequestMapping(value “/item/itemlist.action”) 5 public ModelAndView itemList(){ 6 //从Mysql中查询…

登录用户名和密码相同问题

当用户登录时,出现用户名和密码相同的情况,会出现异常TooManyResultsException,因为mybatis的底层会调用selectOne方法,返回多个结果出现异常 解决办法:不允许出现用户名同名,在添加的时候先对数据库中的数…

java访问本地文件_java 读取本地文件 更改

/*** Title: MakeHtml* Description: 创建html*paramfilePath 设定模板文件*paramconent 替换的内容*paramdisrPath 生成html的存放路径*paramfileName 生成html名字*returnvoid 返回类型*throws*/public static voidMakeHtml(String filePath,String conent,String disrPath,S…

HTML中如何给HTML元素添加事件

HTML中如何给HTML元素添加事件 方法一&#xff1a; 代码示例&#xff1a; <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><script>function test(){alert("执行了");}</script><…

kewail node 短信_nodejs短信验证

nodejs短信验证申请配置信息&#xff1a;1.短信验证&#xff1a;阿里大鱼(http://www.alidayu.com/)2.创建应用3.下载nodejs的sdk下载super-alidayu短信验证组件[rootlocalhost aldy]#npm install super-alidayu --save[rootlacalhost aldy]#vim app.jsconst AliDaYu require(…

SpringBoot项目@Email不起作用

SpringBoot项目Email不起作用 新版本springboot要加上 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency>

debian 安装java_debian9安装jdk1.8

//先跟新可用安装信息apt-get update//查看可以安装的jdk版本apt-cache search jdk//会显示如下内容&#xff1a;openjdk-8-dbg - Java runtime based on OpenJDK (debugging symbols)openjdk-8-demo - Java runtime based on OpenJDK (demos and examples)openjdk-8-doc - Ope…

yml和properties的加载顺序

yml和properties的加载顺序 正常的情况是先加载yml&#xff0c;接下来加载properties文件。如果相同的配置存在于两个文件中。最后会使用properties中的配置。最后读取的优先级最高。 两个配置文件中的端口号不一样会读取properties中的端口号。

python实现简单的名字管理系统_python列表使用实现名字管理系统

python列表使用实现名字管理系统来源&#xff1a;中文源码网 浏览&#xff1a; 次 日期&#xff1a;2019年11月5日【下载文档: python列表使用实现名字管理系统.txt 】(友情提示:右键点上行txt文档名->目标另存为)python列表使用实现名字管理系统本文实例为大家分享了…

ssm项目搭建

系统环境搭建 Spring的jar包11个 com.springsource.org.aopalliance-1.0.0.jar //Aopi联盟的jar包遵循其规则 com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar //面向切面编程 spring-aop-5.0.1.RELEASEjar //实现aop spring-aspects-5.0.1.RELEASEjar //aspect整合的…

【计算机网络】——习题解析:一个UDP用户数据的数据字段为8192字节,在数据链路层要使用以太网来传输,试问应当划分为几个IP数据报片?说明每一个IP数据报字段长度和片偏移字段的值

【计算机网络】——习题解析&#xff1a;一个UDP用户数据的数据字段为8192字节&#xff0c;在数据链路层要使用以太网来传输&#xff0c;试问应当划分为几个IP数据报片&#xff1f;说明每一个IP数据报字段长度和片偏移字段的值 答&#xff1a;6个数据字段的长度&#xff1a;前5…

java网络接口_java网络编程之识别示例 获取主机网络接口列表

importjava.net.*;importjava.util.Enumeration;publicclassInetAddressExample{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubtry{//获取主机网络接口列表EnumerationinterfaceListNetworkInterface.getNetworkInterfaces();//检测接口列表是否为空,即使…

网络协议,各层功能,各层协议

一、OSI七层模型 OSI七层协议模型主要是&#xff1a;应用层&#xff08;Application&#xff09;、表示层&#xff08;Presentation&#xff09;、会话层&#xff08;Session&#xff09;、传输层&#xff08;Transport&#xff09;、网络层&#xff08;Network&#xff09;、数…

vc2010 mysql5.7_VC2010利用MySQL++访问mysql. 及连接池示例

参加这个哥们的博客http://www.voidcn.com/article/p-mfnvxzca-cd.html 我的一个测试例子&#xff0c;用到了blob&#xff1b; #include #include #include #include #include using namespace mysqlpp; using namespace std; sql_create_3(sorttest,1,3,sql_int_unsigned,id,s…

java中下拉框select和单选按钮的回显操作

1.下拉框select的回显 <select name"departmentId" id"departmentId"><option value"0">请选择部门</option><c:forEach items"${departmentList }" var"department"><!-- 下拉框回显 -->&l…

fastdfs java token_fastdfs-client-java操作fastdfs

一、在https://github.com/happyfish100/fastdfs-client-java 下载客户端&#xff0c;解压后并执行ant命令&#xff0c;在E:\tools\libs\fastdfs\fastdfs-client-Java-master\src\build下会生成fastdfs_client.jar如图示二、mvn安装fastdfs_client.jar&#xff0c;在cmd中执行命…

idea编辑器中使用@Data注解无效解决办法

使用Data注解可以减少了以前的get和set等方法&#xff0c;但是在idea编辑器中不认识会在使用实体类元素时候找不到&#xff08;但是运行不会报错&#xff09; 所以可以添加插件

java spring 加载顺序_java – 如何执行spring配置类的加载顺序?

我正在一个多模块项目(maven)上使用spring-boot.每个模块都有自己的Configuration类.基本上我确实有如下的布局模块嵌入式(运行只调用SpringApplication.run())方法&#xff1a;ConfigurationEnableAutoConfigurationComponentScan("de.foobar.rootpackage")Import({…