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

众所周知: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 条评论
登录 后参与评论

相关文章

来自专栏猿人谷

《C++ primer》--第三章

习题3.2 什么是默认构造函数? 解答:      默认构造函数就是在没有显示提供初始化式时调用的构造函数。它由不带参数的构造函数,或者为所有形参提供默认实参的...

1795
来自专栏木子昭的博客

Python中 传递值 与 传递引用 的区别

对于不可变类型传递值(不会影响原数据) ? 不可变类型 对于可变类型传递引用(会影响原数据) ? 不可变类型传递引用 pyth...

3719
来自专栏诸葛青云的专栏

手把手教你c语言基础语法——结构体

在前面已经介绍了整形(int,long,….),浮点型(flaot,double),字符型(char),还介绍了数组(存储一组具有相同类型的数据),字符串。但是...

560
来自专栏函数式编程语言及工具

泛函编程(3)-认识Scala和泛函编程

接着昨天的文章,再示范一个稍微复杂一点的尾递归tail recursion例子:计算第n个Fibonacci数。Fibonacci数第一、第二个数值分别是0,1...

1957
来自专栏鸿的学习笔记

Python和Scala的序列

序列是一门高级语言里都会具备的一种数据结构,Scala和Python也不例外。在不同的语言里,序列有着各种不同的别称以及增添了不同的功能,今天只关注Scala和...

711
来自专栏用户2442861的专栏

python copy & deepcopy 区别

输出: l1: [1, 2, 3, ['a', 'b', 'c']] l2: [1, 2, 3, ['a', 'b', 'c']]

803
来自专栏开发技术

排序之快速排序(上)

希尔排序相当于直接插入排序的优化,它们同属于插入排序类,堆排序相当于简单选择排序的优化,它们同属于选择排序类。而快速排序其实就是冒泡排序的升级,它们都属于交换...

2423
来自专栏用户2442861的专栏

c++面试题

delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delet...

831
来自专栏小白的技术客栈

Python基础语法-常量与变量(重发)

昨天的文章虽然有插图,但是一个都没有显示出来,估计是天气太热,不愿意露面的缘故吧。这些都不是事,暂且不表,今天再次发布与昨天相同的文章,主要为了弥补3个插图。为...

3224
来自专栏Play & Scala 技术分享

Play For Scala 开发指南 - 第2章 Scala基本语法

2585

扫码关注云+社区