房上的猫:类和对象>万物皆对象

众所周知: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);        
      //为武器信息赋值并输出,括号内是引用的前面的变量值给武器系统中的参数
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏liulun

Nim教程【六】

目前看来这是国内第一个关于Nim的系列教程 先说废话 Rust1.0已经发布了, 国内有一个人为这个事情写了一篇非常长的博客, 这篇文章我前几天草草的看了...

1716
来自专栏云霄雨霁

发布与逸出

963
来自专栏desperate633

第12-13课 创建表的联结创建联结内联结联结多个表外联结自联结使用带聚集函数的联结小结

为什么使用联结? 因为在关系表中,数据是存储在各个表中的。如何一次检索出各个表中的数据,答案就是使用联结啦。

571
来自专栏转载gongluck的CSDN博客

python笔记:#007#变量

变量的基本使用 程序就是用来处理数据的,而变量就是用来存储数据的 目标 变量定义 变量的类型 变量的命名 01. 变量定义 在 Python 中,每个变量 在...

2938
来自专栏take time, save time

可能是最通俗的Lempel-Ziv-Welch (LZW)无损压缩算法详述

  最近工作正好接触到这一块,试着自己总结了一下,给需要的人提供一点帮助。 一、概述      首先看看百度百科里的一句话介绍:“LZW就是通过建立一个字符串表...

6677
来自专栏C++

python笔记:#007#变量

632
来自专栏smy

js或者php浮点数运算产生多位小数的理解

image.png <?php $f = 0.58; var_dump(intval($f * 100)); //为啥输出57 ?>  首先我...

2849
来自专栏技术/开源

从C#到TypeScript - 高级类型

C# vs TypeScript - 高级类型 上一篇讲了基础类型,基本上用基础类型足够开发了,不过如果要更高效的开发,还是要看下高级类型,这篇和C#共同点并不...

1879
来自专栏用户2442861的专栏

c++ 11 新特性

赖勇浩(http://laiyonghao.com) 声明:本文源自 Danny Kalev 在 2011 年 6 月 21 日发表的《The Bigges...

431
来自专栏Brian

C++11基础学习系列一

---- 概述 C++11标准越来越趋于稳定和成熟,国外c++11如火如荼而国内却依然处于观望期。每当提到C++很多程序员都很抵触,特别是学术界的呼声更高一些。...

2564

扫描关注云+社区