Java学习: 面向对象的使用与注意事项

面向对象的使用与注意事项

面向过程:当需要实现一个功能的时候,每一个具体的步骤都需要亲力,详细处理每一个细节
面向对象:当需要实现一个功能的时候,不关心具体的步骤,而是找一个已经具有该功能的人,来帮我做事。

类与对象的关系

  1. 类是对一类事物的描述,是抽象的。
  2. 对象是一类事物的实例,是具体的。
  3. 类是对象的模板,对象是类的实例。

定义一个类,用来模拟“学生”事物。其中就有两组成部分:

属性(是什么):

  • 姓名
  • 年龄

行为(能做什么):

  • 吃饭
  • 睡觉
  • 学习

对应到Java的类当中
成员变量(属性):

String name;//姓名
int age;//年龄

成员方法(行为);

public void eat(){}//吃饭
public void sleep(){}//睡觉
public void study(){}//学习

注意事项:

  1. 成员变量是直接定义到类当中的,在方法外边。
  2. 成员方法不要写static关键字

对象的创建与使用

通常情况下,一个类并不能直接使用,需要根据类创建一个对象,才能使用。

1.导包:也就是指出需要使用的类,在什么位置。

import 包名称.类名称;

对于和当前类属于同一个包的情况下,可以省略导包语句不写。

2.创建,格式:

类名称 对象名 = new 类名称();
Student stu = new Student();

3.使用,分为两情况:

使用成员变量:对象名.成员变量
使用成员方法:对象名.成员方法名(参数)
(也就是,想用谁,就用对象名点儿谁。)

注意事项:

  • 如果成员没有进行赋值,那么将会有一个默认值,规则和数组一样。
  • 当一个对象作为参数,传递到方法当中时:实际上传递进去的是对象的地址值。
  • 当使用一个对象类型作为方法的返回值时:返回值其实就是对象的地址值。

局部变量和成员变量的区别:

1.定义的位置不一样【重点】

  • 局部变量:在方法的内部
  • 成员变量:在方法的外部,直接写在类当中

2.作用范围不一样【重点】

  • 局部变量:只有方法当中才可以使用,出了方法就不能再用了
  • 成员变量:整个类都可以通用

3.默认值不一样【重点】

  • 局部变量:没有默认值,如果要想使用,必须手动进行赋值
  • 成员变量:如果没有赋值,会有默认值,规则和数组一样

4.内存的位置不一样(了解)

  • 局部变量:位于栈内存
  • 成员变量:位于堆内存

5.生命周期不一样(了解)

  • 局部变量:随着方法进栈而诞生,随着方法出栈而消失
  • 成员变量:随着对象的创建而诞生,随着对象被垃而消失

面向对象三大特征:封装、继承、多态。

封装性在Java当中的体现:

  1. 方法就是一种封装
  2. 关键字private也是一种封装

封装就是将一些细节信息隐藏起来,对于外界不可见。

问题描述:定义Person的年龄时,无法阻止不合理的数值被设置进来。
解决方案:用private关键字将需要保护的成员变量进行修饰

一旦用了private进行修饰,那么本类当中任然可以随意访问。
但是:超出了本类范围之外就不能再直接访问了。

间接访问private成员变量,就是定义一对儿Getter/Setter方法

注意事项:

  • 必须叫setXxx或者getXxx命名规则。
  • 对于Getter来说,不能有参数,返回值类型和成员变量对应;
  • 对于Setter来说,不能有返回值,参数类型和成员变量对应。

this关键字的定义:

当方法的局部变量和类的成员变量重名的时候,根据“就近原则”,优先使用局部变量。
如果需要访问本类当中的成员变量,需要使用格式:

this.成员变量
“通过谁调用的方法,谁就是this。

构造方法:

构造方法是专门用来创建对象的方法,当我们通过关键字new来创建对象时,其实就是再调用构造函数。

格式:
public 类名称(参数类型 参数名称){
方法体
}

注意事项:

  1. 构造方法的名称必须和所在的类名称完全一样,就连大小写也要一样
  2. 构造方法不要写返回值类型,连void都不需要写
  3. 构造方法不能return一个具体的返回值
  4. 如果没有编写任何构造方法,那么编译器将会默认赠送一个构造方法,没有参数,方法体什么事情都不做
public Student(){}

  5.一旦编写了至少一个构造方法,那么编译器将不再赠送。

  6.构造方法也是可以进行重载的。

重载:方法名称相同,参数列表不同。

一个标准的类通常要拥有下面四个组成部分:

  1. 所有的成员变量都要使用private关键字修饰
  2. 为每一个成员变量编写一对Getter/setter方法
  3. 编写一个无参数的构造方法
  4. 编写一个全参数的构造方法

这样的标准类也叫做Java Bean

标准类:
public class Student{

    private String name;//姓名
    private int age;//年龄

    public Student(){
        //无参构造方法
    }
    public Student(String name ,int age ){
        this.name = name;
        this.age = age;
    }//有参构造方法

    public String getName(){
        return name;
    }
    public void setName(String name){
        this.name = name;
    }//姓名

    public int getAge(){
        return age;
    }
    public void setAge(int age){
        this.age = age;
    }//年龄
}

//==================//
public class CaiNiao{

    public static void main(String[] args){
        Student stu1 = new Student();
        stu1.setName("菜鸟");
        stu1.setAge(18);
        System.out.println("姓名:" + stu1.getName()+",年龄:"+stu1.getAge());
        //第二种方法
        student stu2 = new Student("传奇",28);
        System.out.println("姓名:" + stu2.getName()+",年龄:"+stu2.getAge());
        stu2.setAge(22);//修改后
        System.out.println("姓名:" + stu2.getName()+",年龄:"+stu2.getAge());

    }
}
    

原文地址:https://www.cnblogs.com/cainiao-chuanqi/p/11073986.html

时间: 2024-10-31 00:07:37

Java学习: 面向对象的使用与注意事项的相关文章

JAVA学习面向对象之 扑克牌(初)

感想: 一开始不了解或者说是对JAVA的特性不熟悉,不知道类与类之间的联系,对JAVA的封装,继承,多态不熟悉和没有更好的理解,在以后的学习过程中要掌握并熟悉JAVA的开发习惯, 在写代码过程中还有众多东西没有掌握,靠着老师和同学的帮助完成这次学习,初步了解了JAVA面向对象开发的基本要领.写这个博客以便于自己今后学习,也算是一段美好的回忆吧! 上面是一个类图  表示着写这个程序的只要思路. Card类:他的下级是cardview上级是player,有着一定的关系 package com.cqv

JAVA学习--面向对象的特征三:多态性

* 面向对象的特征三:多态性  * 1.多态性指的是什么?多态性,可以理解为一个事物的多种表型形态.  *   1)方法的重载与重写  2)子类对象的多态性  *  * 2.子类对象的多态性使用的前提:①要有类的继承②要有子类对父类方法的重写  *  * 3.程序运行分为编译状态和运行状态.  *   对于多态性来说,编译时,"看左边",将此引用变量理解为父类的类型  *   运行时,"看右边",关注于真正对象的实体:子类的对象.那么执行的方法就是子类重写的.  *

JAVA学习--面向对象的特征二:继承性

* 一.面向对象的特征二:继承性 * 1.为什么要设计继承性?  *  * 2.通过"class A extends B"类实现类的继承.  *   子类:A  父类(或基类 SuperClass):B  *     * 3.子类继承父类以后,父类中声明的属性.方法,子类就可以获取到.  *    明确:当父类中有私有的属性或方法时,子类同样可以获取得到,只是由于封装性的设计,使得子类不可以直接  *        调用罢了.  *   子类除了通过继承,获取父类的结构之外,还可以定义

JAVA学习--面向对象思想的落地法则

* 面向对象思想的落地法则一:  * 1.设计类,并设计类的成员(成员变量&成员方法)  * 2.通过类,来创建类的对象(也称作类的实例化)  * 3.通过“对象.属性” 或“对象.方法”来调用,完成相应的功能  *  * 二.创建的多个对象,彼此各自拥有一套类的属性.当对其中一个对象的属性进行修改时,  * 不会影响到其他对象的属性值.  *  * 三.类的属性(成员变量)  *   成员变量 vs 局部变量  *   相同点:1.遵循变量声明的格式: 数据类型 变量名 = 初始化值  * 

[Java学习]面向对象-package;内部类;UML图表示六种关系

package 软件包 类名前加入命名空间(包),解决命名冲突问题. 定义格式:公司域名倒叙.项目名.模块名; package语句写在文件第一行 使用import语句导入package java.lang; 软件包下的所有类系统自动导入. 编译 javac -d 生成路径 java源文件路径 运行 java 完整类名 内部类 基本 定义:类里面的类. 好处:内部类可以访问其外部类的私有数据. 分为 :静态内部类,成员内部类,局部内部类,匿名内部类 静态内部类 调用静态内部类的静态方法: Oute

java学习中,面向对象的三大特性:封装、继承、多态 以及 super关键字和方法的重写(java 学习中的小记录)

java学习中,面向对象的三大特性:封装.继承.多态 以及 super关键字和方法的重写(java 学习中的小记录) 作者:王可利(Star·星星) 封装     权限修饰符:public 公共的,private 私有的     封装的步骤:          1.使用private 修饰需要封装的成员变量.          2.提供一个公开的方法设置或者访问私有的属性              设置 通过set方法,命名格式:     set属性名();  属性的首字母要大写 访问 通过ge

Java学习总结(三)——面向对象(上)

Java学习总结(三) -面向对象(上) 一.面向对象的概念及思考方式 面向对象的理解:是一种编程思想,他将对象作为解决问题的基本元素,利用对象与对象之间的相互作用来设计程序. 2.面向对象的思考方式:(1)首先确定问题域中的对象 (2)确定对象的特征与功能 (3)了解对象与对象之间的关系 例:设计一个五子棋游戏的对象:·黑白双方对象     ·绘制棋盘     ·输赢规则 二.类与对象 1.对象:用来描述客观事物的一个实体,由一组属性和行为构成. 2.类:(1)是一个模板,他描述一类对象的行为

Java学习轨迹【面向对象】(持续更新)

其中部分内容为其他博主所作,侵删 6月12日-7月每日更新 Java学习轨迹 一.面向对象 类和对象 1. new关键字所完成的事情 1)为对象开辟了新的内存空间 2)调用类的构造方法 3)返回生成对象的地址 Dog dog=new Dog(); dog是引用,new Dog()生成了一个Dog对象,引用dog指向所生成对象的地址 2.构造方法 1)构造方法必须与类名相同 2)构造方法没有返回值[且不能使用void作返回值] 3)如果在定义类的时候没有为类声明构造方法java编译器会自动为类添加

Java学习笔记<3>面向对象相关

面向对象的基本思想 从现实世界客观存在的事务出发来构造软件系统,并在系统的构造中尽可能运用人类的自然思维方式,如抽象.分类 继承.聚合.多态等. 类和对象的关系 对象中存储了类规定的数据类型,并且对象可以调用类的方法. java面向对象 <1>对象是java程序的核心,一切皆对象. <2>对象可以看成静态属性(成员变量)和动态属性(方法)的封装体. <3>类是创新同一类型对象的模版,定义了该类型对象应具有的成员变量及方法. 类的定义 成员变量可以用java语言的任何一种