面向对象(Object Oriented)

一、面向对象杂谈

面向对象(Object Oriented),我的翻译是以物体为目标的,就是说编程的时候是建立一个物体,然后对这个物体进行操作。

Java语言是面向对象的(有95%都是面向对象的内容),C++是基于对象的

计算机语言的发展向接近人的思维方式演变

  • 汇编语言        [面向机器]
  • c语言           [面向过程]
  • java语言        [面向对象]
  • spring         [面向切面]———— 把类在进行切分

二、类和对象的关系————(类class,对象object)

Java学习日记基础篇(四)——类,对象之成员变量,成员方法,构造方法

三、创建一个简单的类

class Cat		//类名首字母要大写
{
	int age;
	String name;
	String color;
}

四、类和对象的区别和联系

  • 类是抽象的,概念的,代表一类事物——只能找到人,找不到人类
  • 对象是具体的,实际的,代表一个具体的事物
  • 类是对象的模板,对象是类的一个个体,实例  

五、定义一个全面的类 —— 一个全面的类定义比较复杂

package 包名;
class 类名 extends 父类 implements
接口名{
    成员变量;
    构造方法;
    成员方法;
}

类——类的成员变量

成员变量是类的一个组成部分,一般是基本数据类习惯,也可是引用类型。比如我们前面定义猫类的 int age 就是实例变量,属于成员变量。

   引用类型是什么呢?

    假如说猫要有一个主人,这个主人也有年龄,身高等信息

    通俗来讲就是类指向另外一个类,叫做引用,例如:

class Cat
{
	int age;
	String name;
	String color;                    //其实它也是一个引用类型,Java中String本身就是一个类
	    
	Myster myMaster;            //这就是一个引用类型
}
class Master
{
	int age;
	String name;
	String address;
}    

类与对象

一、创建对象的两种方法

  • 1、先声明再创建——没人用了! 
  • 2、一步到位法  
1、先声明再创建
	对象声明:类名  对象名
	对象创建:对象名 = new 类名()
	
	Cat cat1=new Cat();

2、一步到位法
	类名 对象名 = new 类名();
	
	Cat cat1;
	cat1 = new Cat;

Java对象及其引用详解

二、如何 访问/使用 对象的成员变量

对象名.变量名

cat1.age=3;
cat1.name="小白";
cat1.color="黄色";

思考:

public class Demo6
{
	public static void main(String []args)
	{
		Person a=new Person();
		a.age = 10;
		a.name="小明";
		
		Person b;
		b = a;
		//问b.age是多少??
		System.out.println("b.age="+b.age);
		
		Person c;
		c = a;
		c.age = 9;		//问改变c.age的值,a.age和b.age的值会变吗??
		System.out.println("a.age="+a.age);
		System.out.println("b.age="+b.age);
		System.out.println("c.age="+c.age);
		
	}
}
class Person
{
	int age;
	String name;
}


运行结果:
D:\myJavaDemo>java Demo6
b.age=10
a.age=9
b.age=9
c.age=9

原理:创建对象a的时候开辟了一块内存,之后相当于让b和c的地址也指向了那块地址,所以对c.age进行操作时,a.age和b.age的值也跟着变化了

Java学习日记基础篇(四)——类,对象之成员变量,成员方法,构造方法

三、对象在内存中的存在形式

Java学习日记基础篇(四)——类,对象之成员变量,成员方法,构造方法

我们用new这个方法创造的对象,放到了内存中

了解一下:java的垃圾回收机制,如果对象没有人指向,就认为这个对象是垃圾,在适当的时候去回收。

类的成员方法

在某些情况下我们需要定义类的成员方法。比如人类:

  • 除了有一些属性外(例如:成员变量表示的年龄,姓名等)
  • 我们人类还有一些行为比如:可以说话,跑步
  • 通过学习我们还可以做算术题
  • 这时就要用成员方法才能完成

现在我们来对Person类完善

  1. 添加speak  成员方法,输出——我是一个好人
  2. 添加jisuan  成员方法,可以计算从1+..+1000的结果
  3. 修改jisuan  成员方法,该方法可以接受一个数n,计算从1+..+n的结果
  4. 添加add  成员方法, 可以计算两个数的和

成员方法的定义

成员方法也叫成员函数

public 返回数据类型 方法名 (参数列表)
{
	语句;   //函数(方法)主体
}


/*
1. 参数列表: 表示成员函数输入
2. 数据类型(返回类型): 表示成员函数输出
3. 函数主体: 表示为了实现某一功能代码块
*/

speak成员方法

 1 public class Demo6
 2 {
 3     public static void main(String []args)
 4     {
 5         //使用成员方法
 6         Person p1=new Person();
 7         p1.speak();            //调用speak方法
 8     }
 9 }
10 class Person
11 {
12     int age;
13     String name;
14 
15     //定义成员方法
16     public void speak()
17     {
18         System.out.println("我是一个好人");
19     }
20     
21 }
speak成员方法(函数)

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-07-06
  • 2021-10-30
  • 2021-08-27
  • 2022-12-23
  • 2021-09-26
  • 2021-07-29
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-11-06
  • 2021-12-29
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案