zoukankan      html  css  js  c++  java
  • JavaSE (五)面向对象 -- 概述

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

    目录

     

    一、面向对象的主线

    二、面向对象 VS 面向过程

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

    四  、Java类及类的成员

     五、面向对象的思想

    1、类与对象

    2、java类及类的成员

    3、类的语法格式

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

    八、匿名对象

    九、案例实操

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


    一、面向对象的主线

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

    二、面向对象 VS 面向过程

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

               人{     
                      打开(冰箱){
                          冰箱.开开();
                      }     
                       关闭(冰箱){
                          冰箱.关门();
                      }     
                       操作(大象){
                          大象.进入();
                      }     
                  }             
                  大象{
                      进入(){
                      }
                  }     
                  冰箱{     
                      开开(){
                      }     
                      关门(){
                     }
                }

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

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

    四  、Java类及类的成员

           属性  = field = 成员变量
           行为 = (成员)方法 = 函数

    public class OOP {
    
    }
    

     五、面向对象的思想

    1、类与对象

    2、java类及类的成员

    3、类的语法格式

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

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

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

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

    public class PersonTest {
    
    	public static void main(String[] args) {
    		
    		//创建一个人的对象
    		Person p = new Person(); //int a = 10;String s = "aaa"
    		//对象名.属性名 = 属性值; 给对象中的属性进行赋值
    		p.name = "强哥";
    		p.age = 16;		
    		
    		new String();
    		//获取属性中的值
    		String n = p.name;
    		System.out.println(n);
    		System.out.println(p.age);
    		
    		//调用方法(对象名.方法名)
    		p.say();
    		p.run();
    		
    		System.out.println("-------------创建另一个对象------------");
    		
    		Person p2 = new Person();
    		p2.name = "小苍老师";
    		p2.age = 16;
    		
    		p2.say();
    		p2.run();
    			
    		Person p3 = new Person();
    		Person p4 = new Person();
    		
    		p3.name = "小泷老师";
    		p4.name = "小波老师";
    		
    		Person p5 = p3;
    		p5.name = "小泽老师";
    		
    		System.out.println(p3.name); 
    		System.out.println(p3.age);
    		System.out.println(p4.name);
    		System.out.println(p4.age);
    		System.out.println(p5.name);
    		System.out.println(p5.age);
    		
    		System.out.println("----------------匿名对象-------------------");
    		//创建了一个匿名对象
    		//匿名对象往往我们作为实参进行传递
    		new Person().name = "aaa";
    		String n2 = new Person().name;
    		System.out.println(n2);
    	}
    	
    	/*
    	 * 讲了方法再说
    	 */
    	public void say(Person p){
    		
    	}
    }
    
    //创建一个类
    class Person{
    	
    	//属性
    	String name; //成员变量
    	int age;
    	
    	//方法
    	public void say(){
    		System.out.println(name + "说话了么么哒");
    	}
    	
    	public void run(){
    		System.out.println(name + "跑起来了");
    	}
    	
    }

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

    八、匿名对象

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

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

    public class PersonTest {
    	public static void main(String[] args) {
    		PersonTest pt = new PersonTest();
    		pt.show(new Person()); //将匿名对象作为一个实参进行传递
    	}
    	public void say(){
    		show(new Person());
    	}
    	public void show(Person p){
    	}
    }
    class Person{
    }

    九、案例实操

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

    package com.atguigu.exer2;
    
    public class CircleTest {
    
    	public static void main(String[] args) {
    		
    		Circle c = new Circle();
    		c.radius = 1; //给属性设值
    		//ctrl + shift + 回车  向上另起一行写代码
    		//shift + 回车  向下另起一行写代码
    		System.out.println(c.findArea());
    
    	}
    }
    
    /*
     * 利用面向对象的编程方法,设计类Circle计算圆的面积。
     */
    class Circle{
    	
    	double radius; //半径
    	
    	public double findArea(){
    //		return 3.14 * radius * radius;
    		return Math.PI * radius * radius;
    	}  
    	
    	/*
    	 * 设计的不对 : 在做一些功能运算时,属性的值最好不要作为参数传进来。
    	 */
    	/*
    	public double findArea(double r){
    		return 3.14 * r * r;
    	} 	
    	public double findZhouChange(double r){
    		return 3.14 * 2 * r;
    	}
    	*/
    }
    
  • 相关阅读:
    noip2007 tg day1t1 统计数字
    洛谷1123 取数游戏
    洛谷1123 取数游戏
    素数筛
    bzoj 1297 [SCOI2009]迷路
    bzoj 2115 [Wc2011] Xor——路径和环的转化
    poj 2154 Color——带优化的置换
    bzoj 1407 [Noi2002]Savage
    poj 1286 Necklace of Beads
    bzoj 4031 [HEOI2015]小Z的房间
  • 原文地址:https://www.cnblogs.com/wushaopei/p/11712036.html
Copyright © 2011-2022 走看看