JavaSE (五)面向对象 -- 概述

爱被打了一巴掌 2022-02-09 14:19 394阅读 0赞

个人博客网:https://wushaopei.github.io/ (你想要这里多有)

目录

一、面向对象的主线

二、面向对象 VS 面向过程

三 、 java最基本的两个要素 - 类和对象

四 、Java类及类的成员

五、面向对象的思想

1、类与对象

2、java类及类的成员

3、类的语法格式

六、面向对象思想落地实现的规则一

八、匿名对象

九、案例实操

利用面向对象的编程方法,设计类Circle计算圆的面积。


一、面向对象的主线

  1. 1.java类及类的成员
  2. 2.面向对象的三大特性 **封装性,继承性,多态性** (抽像性)
  3. 3.关键字 : this super final static ......

二、面向对象 VS 面向过程

面向过程 : 面向过程,强调的是功能行为
面向对象 : 面向对象,将功能封装进对象,强调具备了功能的对象。
1.案例 : 人把大象装冰箱
①面向过程 : 把冰箱门打开,搬起大象,塞进冰箱,关上冰箱门。

  1. ②面向对象
  2. 人{
  3. 打开(冰箱){
  4. 冰箱.开开();
  5. }
  6. 关闭(冰箱){
  7. 冰箱.关门();
  8. }
  9. 操作(大象){
  10. 大象.进入();
  11. }
  12. }
  13. 大象{
  14. 进入(){
  15. }
  16. }
  17. 冰箱{
  18. 开开(){
  19. }
  20. 关门(){
  21. }
  22. }

三 、 java最基本的两个要素 - 类和对象

  1. 抽像的概念上的定义。(类似汽车设计图)
  2. 对象 具体的实实在在的个体。(类似造好的汽车)对象是由类派生(new)出来的

四 、Java类及类的成员

  1. 属性 = field = 成员变量
  2. 行为 = (成员)方法 = 函数
  3. public class OOP {
  4. }

五、面向对象的思想

1、类与对象

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQwNTY3MA_size_16_color_FFFFFF_t_70

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQwNTY3MA_size_16_color_FFFFFF_t_70 1

2、java类及类的成员

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQwNTY3MA_size_16_color_FFFFFF_t_70 2

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQwNTY3MA_size_16_color_FFFFFF_t_70 3

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQwNTY3MA_size_16_color_FFFFFF_t_70 4

3、类的语法格式

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQwNTY3MA_size_16_color_FFFFFF_t_70 5

六、面向对象思想落地实现的规则一

1.创建一个类,并提供相应的属性和方法

2.通过该类创建对象.(new 出来的)

3.给对象和属性进行赋值。对象名.属性名 = 属性值。 对象名.方法名()

  1. public class PersonTest {
  2. public static void main(String[] args) {
  3. //创建一个人的对象
  4. Person p = new Person(); //int a = 10;String s = "aaa"
  5. //对象名.属性名 = 属性值; 给对象中的属性进行赋值
  6. p.name = "强哥";
  7. p.age = 16;
  8. new String();
  9. //获取属性中的值
  10. String n = p.name;
  11. System.out.println(n);
  12. System.out.println(p.age);
  13. //调用方法(对象名.方法名)
  14. p.say();
  15. p.run();
  16. System.out.println("-------------创建另一个对象------------");
  17. Person p2 = new Person();
  18. p2.name = "小苍老师";
  19. p2.age = 16;
  20. p2.say();
  21. p2.run();
  22. Person p3 = new Person();
  23. Person p4 = new Person();
  24. p3.name = "小泷老师";
  25. p4.name = "小波老师";
  26. Person p5 = p3;
  27. p5.name = "小泽老师";
  28. System.out.println(p3.name);
  29. System.out.println(p3.age);
  30. System.out.println(p4.name);
  31. System.out.println(p4.age);
  32. System.out.println(p5.name);
  33. System.out.println(p5.age);
  34. System.out.println("----------------匿名对象-------------------");
  35. //创建了一个匿名对象
  36. //匿名对象往往我们作为实参进行传递
  37. new Person().name = "aaa";
  38. String n2 = new Person().name;
  39. System.out.println(n2);
  40. }
  41. /*
  42. * 讲了方法再说
  43. */
  44. public void say(Person p){
  45. }
  46. }
  47. //创建一个类
  48. class Person{
  49. //属性
  50. String name; //成员变量
  51. int age;
  52. //方法
  53. public void say(){
  54. System.out.println(name + "说话了么么哒");
  55. }
  56. public void run(){
  57. System.out.println(name + "跑起来了");
  58. }
  59. }

七、对象的创建与对象的内存解析

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQwNTY3MA_size_16_color_FFFFFF_t_70 6

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQwNTY3MA_size_16_color_FFFFFF_t_70 7

八、匿名对象

匿名**对象:创建的对象没有赋值给对象的引用**

使**场景往作为实参进行**传递

  1. public class PersonTest {
  2. public static void main(String[] args) {
  3. PersonTest pt = new PersonTest();
  4. pt.show(new Person()); //将匿名对象作为一个实参进行传递
  5. }
  6. public void say(){
  7. show(new Person());
  8. }
  9. public void show(Person p){
  10. }
  11. }
  12. class Person{
  13. }

九、案例实操

利用面向对象的编程方法,设计类Circle计算圆的面积。

  1. package com.atguigu.exer2;
  2. public class CircleTest {
  3. public static void main(String[] args) {
  4. Circle c = new Circle();
  5. c.radius = 1; //给属性设值
  6. //ctrl + shift + 回车 向上另起一行写代码
  7. //shift + 回车 向下另起一行写代码
  8. System.out.println(c.findArea());
  9. }
  10. }
  11. /*
  12. * 利用面向对象的编程方法,设计类Circle计算圆的面积。
  13. */
  14. class Circle{
  15. double radius; //半径
  16. public double findArea(){
  17. // return 3.14 * radius * radius;
  18. return Math.PI * radius * radius;
  19. }
  20. /*
  21. * 设计的不对 : 在做一些功能运算时,属性的值最好不要作为参数传进来。
  22. */
  23. /*
  24. public double findArea(double r){
  25. return 3.14 * r * r;
  26. }
  27. public double findZhouChange(double r){
  28. return 3.14 * 2 * r;
  29. }
  30. */
  31. }

发表评论

表情:
评论列表 (有 0 条评论,394人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JavaSE面向对象之封装

    封装的概念 封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受

    相关 JavaSE面向对象编程

    面向对象编程的本质就是:以类的方式组织代码,以对象的方式组织数据 抽象 三大特征:封装、继承、多态 从认识论角度烤炉是先有对象后有类。对象,是具体的事物。类,是抽象

    相关 面向对象概述

    最近随便翻了一本书(C#程序设计实用教程),其中有一章讲面向对象设计的,对概念表达的很简洁,容易理解,便把这几段留了下来。 ------ 面向对象设计是被用

    相关 JAVASE面向对象

    面向对象 面向对象思想就是不断的创建对象,使用对象,指挥对象做事情.(如果有对象,直接用对象,对我们直接提供服务) 面向对象vs面向过程 面向过程:强调的是过程,所有事情