首页 > 编程语言 >Java-面向对象编程(oop)6-笔记

Java-面向对象编程(oop)6-笔记

时间:2022-12-16 16:36:13浏览次数:70  
标签:Java name 对象 price 构造 oop 面向对象编程 public 定义

Java-面向对象编程(oop)6-笔记_面向对象

1.面向对象的思想

面向:拿或者找

对象:东西

面向对象编程:拿或者找东西过来编程解决问题

面向对象:把现实世界中的事物全部看成一个一个的对象来解决问题的。(万物皆对象)

面向对象编程的好处:代码符合人类的思维习惯,编程程序更简单,看程序更容易理解吧。

2.类、对象

类(设计图):相同事物共同特征的描述

对象:对象是类的具体的实例。

  • 对象==实例

在Java中必须先定义类,才能得到对象。

3.定义类来创建对象使用呢?

定义类的格式

定义类有一些注意事项

  • 1、类名首字母建议大写,有意义,满足驼峰,不要用关键字,合法的标志符
  • 2、一个Java文件中可以定义多个类,但是只能一个类是public修饰的,而且public修饰的类名必须成为Java代码的文件名称,否则报错!

类中具体怎么写呢?

  • 定义汽车类为例
  • 一般名词定义成成员变量(属性):
  • 修饰符 数据类型 变量名称 = 初始值;
  • private String name;
  • private double price;
  • 成员变量不建议给初始化值,存在默认值,默认值的规则:整型是0,浮点型是0.0 引用类型null,布尔型是false
  • 一般动词定义成方法(行为)

具体定义类的例子

  • public class Car {
    // 名词(属性,成员变量)
    String name;
    double price;
    // 动词(行为,成员方法)
    public void start(){
    System.out.println(name + "价格是" + price +"启动成功~~");
    }
    public void run(){
    System.out.println(name +
    "价格是" + price +"性能很好,跑的很快~~");
    }
    }

创建对象

  • 类名 对象名 = new 构造器();
  • 对象怎么使用
  • 对象名.成员变量
  • 对象名.成员方法

4.构造器

作用:

  • 初始化一个类的对象,并返回这个对象的地址。

详细格式:

  • 修饰符 类名(形参){ .... }

构造器的分类:

  • 无参数构造器
  • 初始化一个类的对象,并返回这个对象的地址,里面的数据都是默认值
  • 有参数构造器
  • 初始化一个类的对象,并返回这个对象的地址,并且可以同时为对象赋值。

构造器如何调用呢?

  • 类名 对象名 = new 构造器;

注意:

  • 任何类写出来自带一个无参数构造器,写不写都有
  • 如果你在这个类中定义了一个有参数构造器了,那么无参数构造器就消失了,此时,如果你还要使用无参数构造器,你必须自己写一个。

public class Car {

String name;
double price;

/**
无参数构造器
*/
public Car(){
System.out.println("无参数构造器被调用了~~");
}

/**
有参数构造器
*/
public Car(String n, double p){
System.out.println("有参数构造器被调用了~~");
name = n;
price = p;
}

}

5.this关键字

this的作用:代表了当前对象的地址,可以访问当前对象的成员变量和成员方法。

this具体用在哪儿呢?

  • 可以用在有参数构造器中的
  • public Car(String name, double price){
    // 注意:this在构造器中,代表构造器正在初始化的那个对象。
    System.out.println(this);
    ​​​this.name​​​ = name;
    this.price = price;
    }
  • 可以用在方法中
  • public void goWith(String name){
    // 注意:this在方法中,谁调用这个方法this就代表谁!
    System.out.println(​​​this.name​​​ + "正在和"
    + name +"比赛");
    }

6.封装

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

封装的基本思想:

  • 决定属性和行为归属谁的问题
  • 定义人类(名称,年龄,吃饭、睡觉)
  • 定义圆类
  • 半径,画圆
  • 定义门类
  • 开门,高宽
  • 定义票类
  • 票价,地址,买票

如何更好的封装呢?

  • 成员变量建议private私有化,只能本类访问了。
  • 合理暴露:
  • 提供成套的getter和setter方法暴露取值和赋值

7.标准JavaBean

是什么?就是所谓的实体类(学生类,老师类,汽车类,票类,人类)

作用:创建对象,封装数据的。

标准Bean的书写要求:

  • 成员变量建议private私有化,只能本类访问了。
  • 合理暴露:
  • 提供成套的getter和setter方法暴露取值和赋值
  • 必须提供无参数构造器。

8.局部变量和成员变量的区别

标签:Java,name,对象,price,构造,oop,面向对象编程,public,定义
From: https://blog.51cto.com/chen8866/5947755

相关文章

  • 东拼西凑学java
    前言随着大环境的影响,互联网寒冬降临,程序员的日子越来越难,搞不好哪天就被噶了,多学点东西也没啥坏处,国内市场java如日中天,出门在外不会写两行java代码,都不好意思说......
  • Java内省
    IntrospectorJavaJDKIntrospector在开发框架的时候经常会用到Java类的get/set方法设置或者获取值,但是每次都是用反射来完成此类操作或与麻烦,JDK提供了一套API,专门操......
  • java相关学习资料收集
    springboot学习资料springboot系列教程 spingboot系列教程2 javaspringboot学习application.properties全部配置项   ​​点击查看SpringBoot所有配置......
  • 18 Java内存模型与线程_JVM同步机制和锁类库实现线程安全
    目录1线程安全定义2Java数据与线程安全2.1不可变2.2绝对线程安全2.3相对线程安全2.4线程兼容2.5线程对立3Java线程安全支持3.1互斥同步3.1.1synchronized互斥同......
  • java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11Graphi
    公司项目windows迁移到linux系统,导出Excel报错误,解决办法:配置Tomcat中的catalina.sh在JAVA_OPTS中添加-Djava.awt.headless=true这样的代码,在末尾加上-Djava.awt.hea......
  • 【转载】完美解决 java: 无效的目标发行版: 11
    在使用IDEA编译程序时出现下面的错误信息:java:无效的目标发行版:11问题描述经过研究才发现,这是因为作者使用了jdk8进行编译,而试图使用jdk11的功能,这就必然会导致版本问......
  • igmp snooping
    igmpSnooping,是InternetGroupManagementProtocolSnooping(互联网组管理协议窥探)的简称,它是运行在二层设备上的组播约束的机制,用于管理和控制组播组。IGMPSnooping,就......
  • 基于Java实现数据脱敏
    用法Jdk版本大于等于1.8maven依赖<dependency><groupId>red.zyc</groupId><artifactId>desensitization</artifactId><version>2.4.6</version></d......
  • 一文带你搞懂java中的变量的定义是什么意思
    前言在之前的文章中,壹哥给大家讲解了Java的第一个案例HelloWorld,并详细给大家介绍了Java的标识符,而且现在我们也已经知道该使用什么样的工具进行Java开发。那么接下来,壹哥......
  • 0基础→自动化测试框架实现:java + testng + httpclient + allure
    必备基础java基础配置文件解析(properties)fastjson的使用(处理json字符串、json数组)jsonpath的使用java操作excel(通过POIHttpClient的使用(get、post请求)TestNG用法 自动化测......