java重点——面向对象--类与对象、抽象、封装

1、面向对象的编程思想

1.1、面向过程的编程思想

面向过程的编程思想,就是以流程(过程)为单位,更注重最后功能的实现。

缺点:
1、 代码的耦合性(关联性)比较高
2、 不易于程序的维护和功能的扩展

1.2、面向对象的编程思想

【面向对象的编程依赖于面向过程的编程】

面向对象的编辑思想,就是把一个事物看成一个整体,从事物的特征(属性)和行为(功能、 方法)两个方面进行描述。
Java 语言是一门纯面向对象的编程语言,而面向对象思想是一种程序设计的思想,我们在面 向对象的指引下,使用 java 语言去设计、开发计算机程序,这里的对象是泛指一切事物,每 种事物都有自己的属性和行为,而面向对象思想就是在计算机程序设计过程中,参照现实中 的事物,将事物的属性和行为进行描述。

区别:
面向过程:强调步骤
面向对象:强调对象

特点:
面向对象思想是一种更符合我们人类正常思维方式的思想,他可以将复杂的事情简单化,并 将我们从执行者变成指挥者。
面向对象思想来源于生活服务于生活
面向对象的编程中一定会用到面向过程的编程
面向对象包含了三大特征(封装、继承、多态)(四大特征:抽象、封装、继承、多态)

1.3、什么是对象

对象:在现实生活中具体存在的一个事物,就是一个对象。
万事万物,皆对象
对象特点: 无论两个事物有多么的相似或相近,永远都是两个不同的对象。
一项法律,法规,政策和规章制度都是一个对象

1.4、抽象

所谓的抽象,就是把同一类事物中共有的特征(属性)和行为(功能、方法)进行抽取,归纳,总 结。

1.5、封装

●封装:其实就是包装,对抽象出来的数据进行包装。
●封装目的:就是为了保证数据的安全性
●封装包括两个方面:属性的封装 和 方法的封装
●封装不是绝对的封装,如果要想访问封装起来的数据,可以通过指定的入口即可。
●抽象和封装这两个特征,在程序中的具体体现形式就是【类】
●属性和方法的封装两者是相辅相成密不可分的。

1.6、类(class)

类:是一组相关属性和行为的集合,可以看成是一类事物的模板,使用事物的属性和方 法来描述该类事物。

现实中,描述一类事物
属性:就是该事物的状态信息
行为:就是该事物能够做什么

扫描二维码关注公众号,回复: 11838956 查看本文章

例如:人类
属性:名字,体重,年龄,身高
行为:说话、吃饭、睡觉

类的定义

Java 中用 class 关键字来描述类

类中:
成员属性(变量) 对应的就是事物的属性
成员方法:对象事物的行为

类的定义语法:

public class 类名{
    
     
  	//成员变量   
  	//成员方法 
 }

●定义类:就是定义类的成员,包括成员变量和成员方法
●成员变量:和以前定义的变量几乎是一样的,只不过位置发生了改变,成员变量位于类 中,任何方法之外。
●成员方法:和以前定义的方法几乎是一样的,只不过把 static 关键字去掉。

package com.bdit; 
 
/**  
* 定义一个人类  
* */ 
public class Person {
    
         
	//姓名     
	String name;     
	//年龄     
	int age;     
	//性别     
	String gender; 
 
    //成员方法     
    public void speak(){
    
             
    	System.out.println("人类说话");     
    } 
 
    public void run(){
    
             
    	System.out.println("人类行走");     
    } 
 
    public void eat(){
    
             
    	System.out.println("人类会吃饭");     
    } 
 } 

变量的分类

根据数据类型划分:
● 基本数据类型变量
●引用数据类型变量

根据位置划分:
●局部变量:定义在方法的内部或某个语句块的内部,局部变量的使用范围只限于方 法内或语句块内。
局部变量必须初始化了,才能使用
●全局(成员)变量:定义在类的内部,任何方法的外部,使用范围是整个类

1.7、类和对象

类和对象之间存在的关系:
●类是对对象的抽象
●对象是类的实例化

创新对象,语法格式:

类名 对象名=new 类名(); 

对象的使用:
● 调用成员变量语法格式:对象名.成员属性(变量)
●调用成员方法语法格式:对象名.方法名(参数列表);

成员属性都有默认值,所以在声明成员属性时,可以不用初始化,就能使用
默认值跟数据类型有关系

数据类型 默认值
byte 0
short 0
int 0
long 0
float 0.0
double 0.0
boolean false
char 空字符
引用类型 null
package com.bdit; 
 
/**
 * 定义一个人类 
 *  */ 
 public class Person {
    
         
 		//姓名     
 		String name;     
 		//年龄     
 		int age;     
 		//性别     
 		String gender;     
 		//char 类型     
 		char c; 
 
    	//成员方法   
    	 public void speak(){
    
             
    	 	System.out.println("人类说话");     
    	 } 
 
    	 public void run(){
    
             
    	 	System.out.println("人类行走");     
    	 } 
 
    	public void eat(){
    
             
    		System.out.println("人类会吃饭");     
    	} 
    	
    	 public static void main(String[] args) {
    
             
    	 	//创建一个当前类的对象         
    	 	Person person1=new Person();         
    	 	//给成员变量赋值         
    	 	person1.name="张三";         
    	 	person1.age=22;         
    	 	person1.gender="man";         
    	 	person1.c='a';         
    	 	//成员变量的默认值         
    	 	System.out.println("姓名:"+person1.name);         
    	 	System.out.println("年龄:"+person1.age);         
    	 	System.out.println("性别:"+person1.gender);         
    	 	System.out.println("char:"+person1.c);         
    	 	//调用成员方法         
    	 	person1.speak();         
    	 	person1.run();         
    	 	person1.eat();   
    	}
   }

成员方法的应用

语法:

访问修饰符 返回值类型 方法名称(参数列表){
    
     
 
} 

访问修饰符:public
返回值类型由返回值决定
【成员属性可以直接在成员方法中使用,但是 main 方法中如果要调用成员属性和方法必须 通过对象.属性名\方法名(参数列表)的形式来调用】
【成员方法之间调用,直接写方法名(参数列表)即可】

代码执行的顺序

代码总是从 main 方法开始,也一定是从 main 方法结束。

package com.bdit; 
/* 
代码执行的顺序  
*/ 
public class Test2 {
    
     
 
    public static void main(String[] args) {
    
             
    	//创建对象         
    	Test2 t1=new Test2();         
    	t1.method1();         
    	System.out.println("method1 执行完毕");         
    	System.out.println("程序结束");     
    } 
     public void method1(){
    
             
     	System.out.println("====方法一========");         
     	System.out.println("方法 method1 开始调用 method2");         
     	method2(); 
 
        System.out.println("method1 调用 method2 结束");     
     } 
      public void method2(){
    
             
      	 System.out.println("=========方法二===========");         
      	 int n=method3(); 
      	 System.out.println("在 method2 输出 n 的值"+n); 
 
         System.out.println("method2 方法执行完毕");     
      } 
       public int method3(){
    
             
       		System.out.println("=======方法三=========");         
       		return 15;     
       } 
  } 
 

猜你喜欢

转载自blog.csdn.net/vlucky_long/article/details/108248134