房上的猫:类和对象>万物皆对象
众所周知:java是一门面向对象的编程语言
本章将介绍基础的类和对象
一.对象
对象是用来描述客观事物的一个实体,由一组属性和方法构成
二.封装
封装就是把一个事物包装起来,并尽可能隐藏内部细节
三.类
类定义了对象将会拥有的特征(属性)和行为(方法)
类的属性:
对象拥有的静态特征在类中表示时称为类的属性
类的方法:
对象执行的操作称为类的方法
四.类和对象的关系

类和对象的关系是抽象和具体的关系
类是对象的类型,对象是类的实例
对象的属性和方法被共同封装在类中,相辅相成,不可分割
五.java的类模板
1.语法:
pubilc class <类名>{
//定义属性部分
属性1的类型 属性1;
属性2的类型 属性2;
......
属性n的类型 属性n;
//定义方法部分
方法1;
方法2;
......
方法n;
}
解析:
在java中创建一个类,需要使用一个class,一个类名和一对大括号
(1)class是创建类的关键字
(2)class前的public,表示公有的意思
(3)编写程序时,要注意编码规范,不要漏写public
(4)在class关键字的后面要给定义的类命名,然后写上一对大括号,类的主体部分就写在{}中
2.类的命名规则:
(1)不能使用java中的关键字
(2)不能包含任何嵌入的空格或点号".",以及除下划线"_",字符"$"外的特殊字符
(3)不能以数字开头
3.编写类的属性:
通过在类的主体中定义变量来描述所具有的静态特征(属性),这些变量称为类的成员变量
4.编写类的方法:
通过在类中定义方法来描述类所具有的行为,这些方法称为类的成员方法
六.创建和使用对象
类的作用就是创建对象,称为类的实例化过程
一个实例也就是一个对象,一个类可以生成多个对象
1.创建对象语法:
类名 对象名 = new 类名(); //在创建类的对象时,需要使用java的new关键字
2.引用对象语法:
对象名.属性 //引用对象的属性 对象名.方法名(); //引用对象的方法 //要引用对象的属性和方法,需要使用"."操作符。其中,对象名在原点的左边,属性或方法的名称在原点的右边
七.面向对象的优点
1.与人类的思维习惯一致
2.信息隐藏,提高了程序的可维护性和安全性
3.提高了程序的可重用性
八.使用类和对象的步骤
1.定义类:使用关键字class
2.创建类的对象:使用关键字new
3.使用类的属性和方法:使用"."操作符
九.Java数据类型的默认值
|
类型 |
默认值 |
| int | 0 |
| double | 0.0 |
| char | '\u0000' |
| boolean | false |
| String | null |
十.示例:
import java.util.Scanner;
public class Objects_010 {
//定共有的成员属性
String name;
int hp;
//英雄系统
public void yx() {
System.out.println("我是英雄,我的基本信息如下:");
System.out.println("姓名:" + name + "\t生命值:" + hp);
}
//怪物系统(怪物类型设为独有的lx属性(有参方法))
public void gw(String lx){
System.out.println("我是怪物,我的基本信息如下:");
System.out.println("姓名:" + name + "\t生命值:" + hp+"\t类型:"+lx);
}
//武器系统(武器攻击力类型设为独有的gjl属性(有参方法))
public void wq(String gjl){
Scanner bdqn = new Scanner(System.in);
gjl =bdqn.next();
System.out.println("我是武器,我的基本信息如下:");
System.out.println("武器名:" + name + "\t攻击力:"+gjl) ;
}
public static void main(String[] args) {
Objects_010 a = new Objects_010();
//使用new关键字创建类的对象
Scanner bdqn = new Scanner(System.in);
//创建扫描仪
System.out.println("请输入英雄的基本信息:");
System.out.println("姓名:");
a.name=bdqn.next(); //使用“.”操作符点出属性
System.out.println("生命值:");
a.hp=bdqn.nextInt(); //使用“.”操作符点出属性
a.yx(); //为英雄信息赋值并输出
System.out.println("\n请输入怪物的基本信息:");
System.out.println("怪物名:");
a.name=bdqn.next(); //使用“.”操作符点出属性
System.out.println("生命值:");
a.hp=bdqn.nextInt(); //使用“.”操作符点出属性
String lx = bdqn.next();
//为怪物系统中有参方法中的局部参数提前定一个变量在引用方法时使用
System.out.println("类型:");
a.gw(lx);
//为怪物信息赋值并输出,括号内是引用的前面的变量值给怪物系统中的参数
System.out.println("\n请输入武器的基本信息:");
System.out.println("武器名:");
a.name=bdqn.next(); //使用“.”操作符点出属性
System.out.println("攻击力:");
String gjl = bdqn.next();
//为武器系统中有参方法中的局部参数提前定一个变量在引用方法时使用
a.wq(gjl);
//为武器信息赋值并输出,括号内是引用的前面的变量值给武器系统中的参数
}
}
房上的猫:类和对象>万物皆对象的更多相关文章
- 20190814 On Java8 第三章 万物皆对象
第三章 万物皆对象 对象创建 数据存储 有5个不同的地方可以存储数据: 寄存器 (Registers) 最快的存储区域,位于CPU内部 .无法直接控制. 栈内存(Stack) 存在于常规内存 RAM ...
- Javascript万物皆对象?
在javascript的世界里,有这么一句话,万物皆对象. 但是这个对象,应该怎么理解呢? exm........??,难道值类型也是对象?!! 当然,不是. 准确地讲是对于“引用类型”而言. 那,在 ...
- 万物皆对象的JavaScript
写在前面: 经过前段时间对于H5语言的学习,开始慢慢适应现在的生活节奏和代码语言.从一开始的毫无头绪到现在可以大概地写出部分的网站静态页面,用了两个周的时间.作为一个之前从未接触过计算机语言的初学者来 ...
- 又一次认识java(一) ---- 万物皆对象
假设你现实中没有对象.至少你在java世界里会有茫茫多的对象,听起来是不是非常激动呢? 对象,引用,类与现实世界 现实世界里有许很多多的生物,非生物,跑的跳的飞的,过去的如今的未来的,令人眼花缭乱.我 ...
- 大话JS面向对象之开篇万物皆对象------(ATM取款机引发的深思)
一,总体概要 OO(面向对象)概念的提出是软件开发工程发展的一次革命,多年来我们借助它使得很多大型应用程序得以顺利实现.如果您还没有掌握并使用OO进行程序设计和开发,那么您无疑还停留在软件开发的石器时 ...
- javascript是脚本语言?javascript万物皆对象?
呵呵哒!带你见识下js面对对象的魅力 是的是的,退后,朕要开始装逼了- 这是什么鸟东西?是的是的,装逼开始,2016年度最佳JS编译器,ES6标准出来后,小伙伴们对新特性摩拳擦掌,奈何浏览器支持把我们 ...
- java万物皆对象
我们以Dom对象的形式 可以CRUD xml文件或xml字串(经流把xml文件读出转成字串) 我们以JsonObject对象的形式 可以CRUD json字串 还有正则表达式.ORM都是.
- 什么是对象:EVERYTHING IS OBJECT(万物皆对象)
所有的事物都有两个方面: 有什么(属性):用来描述对象. 能够做什么(方法):告诉外界对象有那些功能. 后者以前者为基础. 大的对象的属性也可以是一个对象.
- Python赋值原理:Python无变量,万物皆对象
有几个和以前的常见语言,比如c语言不同 改变变量数据不覆盖原来的 name = '苍老师' print(id(name)) name = '志玲' print(id(name)) 运行结果 73955 ...
随机推荐
- Echarts后台封装option对象
该方法返回的keyword指向了前台负责图表显示的jsp页面 public String keyword() { if(this.dateNum == null || this.dateNum.equ ...
- Js中for循环的阻塞机制
Js阻塞机制,跟Js引擎的单线程处理方式有关,每个window一个JS线程.所谓单线程,在某个特定的时刻只有特定的代码能够被执行,并阻塞其它的代码. 由于浏览器是事件驱动的(Event driven) ...
- 机器学习笔记1 - Hello World In Machine Learning
前言 Alpha Go在16年以4:1的战绩打败了李世石,17年又以3:0的战绩战胜了中国围棋天才柯洁,这真是科技界振奋人心的进步.伴随着媒体的大量宣传,此事变成了妇孺皆知的大事件.大家又开始激烈的讨 ...
- 機器學習基石 (Machine Learning Foundations) 作业1 Q15-17的C++实现
大家好,我是Mac Jiang.今天和大家分享Coursera-台湾大学-機器學習基石 (Machine Learning Foundations) -作业1的Q15-17题的C++实现. 这部分作业 ...
- linux下分析Java程序内存汇总
使用pmap查看进程内存 执行命令 使用pmap能够查看某一个进程(非java的也能够)的内存使用使用情况, 命令格式: pmap 进程id 演示样例说明 比如执行: pmap 12358 显示结果例 ...
- centos yum安装ffmpeg
ffmpeg是一个重要的应用软件,用于执行与视频文件转换成不同的视频流格式的视频站点,能够安装在linux系统上来使用 (一)安装编译环境 #yum install -y automake auto ...
- 页面的新开页,window.open的hacker
一.window.open如何进行hack 网上看的办法很多,归根接地还是不能解决掉,只有通过a标签的target属性 $obj.click(function(){ var newTab=windo ...
- json的那些事
1.什么是json? json(javascript object notation)全称是javascript对象表示法,它是一种数据交换的文本格式,而不是一种编程语言,用于读取结构化数据.简单来说 ...
- Javascript之模拟文字高亮
在我们平时浏览网页的时候,我们常常会用到Ctrl+F(搜索)功能,被搜索到的文字就是高亮显示.那么,如何在Javascript中模拟文字高亮显示这一功能呢? 以下为笔者写的样例代码: <!DOC ...
- redis基础二
前面已经学习了redis的基本的命令行操作和数据类型,下面开始redis一些有趣的功能. 订阅和发布机制 定义:发布者相当于电台,订阅者相当于客户端,客户端发到频道的消息,将会被推送到所有订阅此频道的 ...