小白Java学习-面向对象

15858289372   ·   发表于 2020-07-27 21:57:13   ·   闲聊灌水区

引言

继续Java的学习,今天java小白来到了面向对象这一关,来pk一下这个大魔王。(学完之后感觉东西真的挺多的 还需要多多练习)

面向对象思想的概述

面向过程:当需要实现一个功能的时候,每一个具体的步骤都要亲力亲为,处理每一个细节。
面向对象:当需要实现一个功能的时候,不关心具体的步骤,而是找一个已经具有该功能的人来做这件事。
(面向过程的思维到面向对象的思维->执行者转变为指挥者)

对象和类(对象从哪来)

类是对一类事物的描述,是抽象的,例如马。对象是一类事物的实例,是具体的,例如我看到的现在在我眼前的这一匹马。
类是对象的模板,对象是类的实体。(对象有了类得以存在)

类的定义

属性(成员变量):是什么
行为(成员方法):能做什么

  1. 定义一个类,模拟“学生”
  2. public class Student{//类名是大驼峰格式
  3. String name;//成员变量 姓名
  4. int age;//成员变量 年龄
  5. public void eat(){//成员方法 由于没有返回值 便用void
  6. System.out.println("吃饭");
  7. }
  8. }

注意事项:
1.成员变量是直接定义在类当中的,在方法外边
2.成员方法不要写static关键字(像public static void main(String[] args){}就有关键字static)

对象创建

1.导包:指出需要使用的类,在什么位置。
import 包名称.类名称;(对于当前同一个包的情况,可以省略导包语句不写)[涉及到一些开发软件,像IDEA,可以自行了解]
2.创建格式
类名称 对象名 = new 类名称();
Student stu = new Student();
3.初步使用
使用成员变量:对象名.成员变量名
使用成员方法:对象名.成员方法名

  1. //创建一个学生对象(默认跟之前定义的类在同一个包中)
  2. public class Demo01{
  3. public static void main(String[] args){
  4. Student stu = new Student();//创建对象
  5. System.out.println(stu.name);//输出默认值null
  6. stu.name = "xiaoming";//成员变量赋值
  7. System.out.println(stu.name);//输出xiaoming
  8. stu.eat();//输出吃饭
  9. }
  10. }

区分成员变量和局部变量(方法参数)

1.定义的位置不一样
局部变量:在方法中
成员变量:在方法外部,直接写在类当中
2.作用范围不一样
局部变量:只有方法当中才可以使用
成员变量:整个类都通用
3.默认值不一样
局部变量:没有默认值,如果要想使用,必须手动进行赋值
成员变量:如果没有赋值,会有默认值,规则和数组一样

关键字private和this

关键字private
在标准的类的定义中,所有的成员变量都需要private的修饰
private String age;
一旦使用private进行修饰,在本类当中当然可以随意访问。但是超出范围之外不能用对象.成员变量名直接进行访问,需要定义getXXX和setXXX间接访问.(变量名boolean类型除外 要用isXXX)

  1. public class Student{
  2. private String name;
  3. public void setName(String str){//调用setName赋值
  4. name = str;
  5. }
  6. public String getName(){//调用getName获取
  7. return name;
  8. }
  9. }

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

  1. public class Student{
  2. private String name;
  3. public void setName(String name){//调用setName赋值
  4. this.name = name;//由于局部变量和成员变量一样 使用this进行赋值
  5. }
  6. public String getName(){//调用getName获取
  7. return name;
  8. }
  9. }

构造方法

在创建对象时默认调用的成员方法
格式:
public 类名称(参数类型 参数名称){
方法体
}

  1. public class Student{
  2. private String name;
  3. //构造方法可分为有参数和无参数
  4. public Student(){
  5. System.out.println("无参数方法执行了");
  6. }//当在另一个类中执行Student stu1=new Student();会输出 无参数方法执行了
  7. public Student(String name){
  8. System.out.println("有参数方法执行了");
  9. this.name=name;
  10. }//当在另一个类中执行Student stu2=new Student("xiaoming");会输出 有参数方法执行了
  11. public void setName(String str){//调用setName赋值
  12. name = str;
  13. }
  14. public String getName(){//调用getName获取
  15. return name;
  16. }
  17. }

注意事项

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

Java Bean(标准的类)

定义一个标准的类 通常拥有四个组成部分

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

结语

这次面向对象的文章中,关于对象的内存使用我并没有涉及,出于如果仅仅用文字叙述很难表达清楚。大家感兴趣可以自己去网上搜寻一下。与君共勉。

打赏我,让我更有动力~

0 条回复   |  直到 2020-7-27 | 887 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.