ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java面向对象(一)

2022-07-09 16:03:03  阅读:132  来源: 互联网

标签:Java 对象 成员 面向对象 void new 方法 public


Java面向对象(一)

目录

一、面向过程(POP)与面向对象(OOP)

  • 二者都是一种思想,面向对象是相对于面向过程而言的。面向过程,强调的是功能行为,以函数为最小单位,考虑怎么做。面向对象,将功能封装进对 象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。

  • 面向对象的三大特征:

    1. 封装
    2. 继承
    3. 多态
    4. (抽象)
  • 例子:把大象装进冰箱

  • Java语言就是一门面向对象的语言。

二、类和对象

  • 类和对象是 Java 语言两个基本元素。

    类:对一类事物的描述,是抽象的、概念上的定义。

    对象:实际存在的该类事物的每个个体,因而也称为实例(instance)。

    例如:人是一个类,而每个特定的人就是一个对象。

  • 面向对象程序设计的重点是类的设计 。

    类的设计,其实就是类的成员的设计。

2.1 类及类的成员

  • 类的成员:

    1. 属性 = 成员变量,
    2. (成员)方法 = 函数
    3. 构造器
    4. 代码块
    5. 内部类

例如:

注意:一个类中不一定要包含所有的类的成员。

2.2 对象的创建与使用

  • 如何使用我们写好的 Java 类及类的成员?

​ 将 Java 类实例化,即创建对象来调用。

  • 创建对象语法: 类名 对象名 = new 类名();

  • 使用“对象名.对象成员”的方式访问对象成员(包括属性和方法)

    public class People {
        String name;
    	int age;
    	public void eat(){
    	System.out.println(“Eating.”);
    	}
    	public viod move(){
    	System.out.println(“Move.”);
        }
    }
    
public class Text{
	public static void main(String args[]){
	//创建对象
	People p1 = new People();
	p1.age = 20;//访问属性
	System.out.println(p1.age);
	p1.eat();//访问方法
	p1.move();//访问方法
    
    People p2 = new People();
    People p3 = p1;
	}
}

注:每创建一个类的对象,则每个对象都独立拥有一套类的属性(非static的)。例如上面代码中,p1和 p2对象都独立拥有一套类的属性,但是应为 p3对象是赋予了 p1对象的地址,所以它跟p1 指向堆空间中的同一个对象实体。

2.3 类的访问机制

在一个类中的访问机制:类中的方法可以直接访问类中的成员变量。(例外:static方法访问非static,编译不通过。)

在不同类中的访问机制:先创建要访问类的对象,再用对象访问类中定义的成员。

2.4 Java内存解析

特别的:数组对象的内存解析:

2.5 匿名对象

  1. 概念:创建的对象没有显式的赋给一个变量名,即为匿名对象。

  2. 创建:new 类名().方法名()

  3. 特征:只能调用一次。(每 new 一次就相当于创建一个新的对象)

  4. 使用:

    • 如果对一个对象只需要进行一次方法调用,那么就可以使用匿名对象。

    • 经常将匿名对象作为实参传递给一个方法调用。

      public class InstanceTest {
      	public static void main(String[] args) {	
      //      匿名对象的创建
      		new Phone().sendEmail();
      		new Phone().playGame();
      		
      //      每 new 一次就相当于新创建一个对象
      		new Phone().price = 1999;
      		new Phone().showPrice();//0.0
      		
      //		匿名对象做实参
      		PhoneMall mall = new PhoneMall();
      		mall.show(new Phone());		
      	}
      }
      
      
      class PhoneMall{	
      	public void show(Phone phone){
      		phone.sendEmail();
      		phone.playGame();
      	}	
      }
      
      
      class Phone{
      	double price;//价格	
      	public void sendEmail(){
      		System.out.println("发送邮件");
      	}	
      	public void playGame(){
      		System.out.println("玩游戏");
      	}	
      	public void showPrice(){
      		System.out.println("手机价格为:" + price);
      	}	
      }
      

三、类的成员之一:属性(也叫成员变量)

语法格式: 修饰符 数据类型 属性名 = 初始化值 ;

  • 常用的权限修饰符有:private、缺省(default)、protected、public

    其他修饰符:static、final (暂不考虑)

  • 数据类型:任何基本数据类型 或 任何引用数据类型。

  • 属性名:属于标识符,符合命名规则和规范即可。

变量的分类:成员变量与局部变量

  • 成员变量:在方法体外,类体内声明的变量

  • 局部变量:在方法体内部声明的变量

  • 注意:二者在初始化值方面的异同:

    同:都有生命周期

    异:局部变量除形参外,均需显式初始化。

例子:

对象属性的默认初始化赋值

四、类的成员之二:方法

4.1 方法的声明格式:

修饰符 返回值类型 方法名(参数类型 形参1, 参数类型 形参2, ….){ 

		方法体程序代码 

		return 返回值; 
}

其中:
1.修饰符:public,缺省,private, protected等
2.返回值类型:
  (1) 没有返回值:void。
  (2) 有返回值,声明出返回值的类型。与方法体中“return 返回值”搭配使用
3.方法名:属于标识符,命名时遵循标识符命名规则和规范,“见名知意”
4.形参列表:可以包含零个,一个或多个参数。多个参数时,中间用“,”隔开
5.返回值:方法在执行完毕后返还给调用它的程序的数据。

4.2 方法的调用:

方法通过方法名被调用,且只有被调用才会执行。

4.3 注意:

  1. 方法被调用一次,就会执行一次。

  2. 没有具体返回值的情况,返回值类型用关键字void表示,那么方法体中可以不必使用return语句。如果使用,仅用来结束方法。

  3. 定义方法时,方法的结果应该返回给调用者,交由调用者处理。

  4. 方法中只能调用方法或属性,不可以在方法内部定义方法。

标签:Java,对象,成员,面向对象,void,new,方法,public
来源: https://www.cnblogs.com/xiaozhao01/p/16461035.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有