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

偶尔善良 提交于 2019-12-01 18:28:23

目录

 

一、面向对象的主线

二、面向对象 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;
	}
	*/
}

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!