Java 学习(06)--面向对象

简介: Java 学习(06)--面向对象1.什么叫面向对象?面向对象(Object-Oriented,简称 OO)就是一种常见的程序结构设计方法。

Java 学习(06)--面向对象

1.什么叫面向对象?

面向对象(Object-Oriented,简称 OO)就是一种常见的程序结构设计方法。

面向对象思想的基础是将相关的数据和方法放在一起,组合成一种新的复合数据类型,然后使用新创建的复合数据类型作为项目的基础。

面向对象是一个很抽象的概念,它相对面向过程而言。过程与对象都是一种解决问题的思想。

面向过程:强调的是功能行为 ,一种过程,先干啥,再干啥;

面向对象:将功能封装到对象里,强调的是具备某功能的对象 ;

按照面向对象的思想,可以把任何的东西看做对象!面向对象的三个特征:

封装 (Encapsulation);

继承 (Inheritance);

多态 (Polymorphism)

我的总结:

面向过程:强调的是具体的功能实现;(执行者)

面向对象:强调的是具备功能的对象。(管理者)

2.类和对象 

类(class)是 Java 语言的最小编程单位, 也是设计和实现 Java 程序的基础,本部分将深入介绍类的相关知识。

类:类是一组事物共有特征和功能的描述。 类是对于一组事物的总体描述, 是按照面向对象技术进行设计时最小的单位, 也是组成项目的最基本的模块。 类的概念是抽象的, 类似于建筑设计中的图纸, 是对于现实需要代表的具体内容的抽象。 类只包含框架结构, 而不包含具体的数据。所以类代表的是总体,而不代表某个特定的个体。

对象:是该类事物的具体存在,是一个具体的实例。 (对象 )

举例:

学生:类  

小明:对象

1.属性 :事物的基本描述(名词)

 行为 :事物的功能(动词)                      

2.Java语言中最基本的单位是类。所以,我们要用类来体现事物

3.成员变量:事物属性(名词)

 成员方法:事物行为(动词) 

3 .成员变量和局部变量的区别

(1)在类中的位置不同

成员变量:类里面;方法外面

局部变量:方法定义里面;方法声明上

输出: null 0

输出: ls 10

 

int a int b 是形参,调用时传真实数据(个数、数据类型必须相同)

输出:ls 12

输出:guojing 18

输出:

 

a 中的数组有一个地址,调用show 方法压栈,里面也有一个 a(与前面不同),重新产生一个栈帧,拷贝前a的地址给 a ,两个a 指向同一个地址,改变后面 a 的值前后都会改变 

创建对象方法:

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

方法体

}

java 中有四个访问修饰符:1.public 2.protected 3.private (私有的,只能在自己类中访问)4.default(默认的)

(2)在内存中的位置不同

成员变量:在堆中;

局部变量:在栈中

(3)生命周期不同

成员变量:随着对象的创建而存在,随着对象的消失而消失

局部变量:随着方法的调用而存在,随着方法的调用完毕而消失

(4)初始化值不同

成员变量:有默认值

局部变量:没有默认值,必须定义,赋值,然后才能使用 

示例:

public class test2{
	public static void main(String[] args){
		Test test = new Test();
		test.show();
		int a = 1;
		System.out.println(a);
		test.show1(1);
		test.show2("hello");
		int[] b =  new int[]{1,2,3};
		test.show3(b);
		System.out.println(b[0]);
	}
}

class Test{
	public void show(){
		System.out.println("helloworld");
	}
	public void show1(int a){ //int a 为行参
		System.out.println(a);
		a++;
	}
	public void show2(String s){
		System.out.println(s);
	}
	public void show3(int[] b){
		for(int i = 0;i < b.length;i++){
			System.out.println(b[i]);
		}
		b[0] = 10;
	}
}

运行:

a均为 1:test.show1(1)中的1复制一份给a,a++后a变了,但 1 不变
数组 b[0]=1;b[0]=10;b 中的数组有一个地址,调用show 方法压栈,里面也有一个 b(与前面不同),重新产生一个栈帧,拷贝前 b 的地址给 b ,两个 b 指向同一个地址,改变后面前面也会改变。 

4.匿名对象 ( 理解 )

(1)没有名字的对象(2)应用场景

A:调用方法,仅仅只调用一次的时候。

b:可以作为实际参数传递。  (3)类作为形式参数的问题 ?(理解)

如果你看到一个方法需要的参数是一个类名, 就应该知道这里实际需要的是一个具

体的对象 ,调用方法时可用匿名对象。 

5.封装

(1)定义:隐藏实现细节,对外只暴露方法名,不关心内部实现细节

(2)好处:1:隐藏实现细节,提供公共的访问方式 2.提高代码的复用性 3.提高代码的安全性

(3)设计原则:把不想让外界知道的实现细节给隐藏起来,提供公共的访问方式

private 是封装的一种体现。

私有的意义,可以修饰成员变量和成员方法特点:被 private 修饰的后的成员只能在本类中被访问

示例:

public class phoneDemo{
	public static void main(String[] args){
		phone phone1= new phone();
		phone1.setName("小米");
		phone1.setSize(7);
		phone1.setCost(3200);
		System.out.println(phone1.getName());
		System.out.println(phone1.getSize());
		System.out.println(phone1.getCost());
	}	
	} 
		class phone{
		private String name;
		private int size;
		private int cost;
		
		public void setName(String n){
			name = n;
		}
		public void setSize(int s){
			size = s;
		}
		public void setCost(int c){
			cost = c;
		}
		
		
		public String getName(){
			return name;
		}
		public int getSize(){
			return size;
		}
		public int getCost(){
			return cost;
		}
		
	}
	

运行:

目录
相关文章
|
21天前
|
Java API Maven
2025 Java 零基础到实战最新技术实操全攻略与学习指南
本教程涵盖Java从零基础到实战的全流程,基于2025年最新技术栈,包括JDK 21、IntelliJ IDEA 2025.1、Spring Boot 3.x、Maven 4及Docker容器化部署,帮助开发者快速掌握现代Java开发技能。
221 1
|
28天前
|
数据采集 搜索推荐 Java
Java 大视界 -- Java 大数据在智能教育虚拟学习环境构建与用户体验优化中的应用(221)
本文探讨 Java 大数据在智能教育虚拟学习环境中的应用,涵盖多源数据采集、个性化推荐、实时互动优化等核心技术,结合实际案例分析其在提升学习体验与教学质量中的成效,并展望未来发展方向与技术挑战。
|
2月前
|
并行计算 Java API
Java 基础篇完整学习攻略
本教程涵盖Java基础到高级内容,包括模块化系统、Stream API、多线程编程、JVM机制、集合框架及新特性如Records和模式匹配等,适合零基础学员系统学习Java编程。
68 0
|
2月前
|
前端开发 Java API
新手 Java 学习资料结合最新技术的精选推荐及高效学习资源参考
本文为新手推荐了涵盖Java基础到最新技术的学习资料,包括官方文档、在线课程、书籍、学习网站及实践平台,帮助系统掌握Java编程,并通过Spring Boot实战提升开发能力。
107 1
|
2月前
|
NoSQL Java 数据库
Java 全栈学习超全面知识图谱构建完整 Java 知识体系
本文全面讲解Java核心技术体系,涵盖基础语法、面向对象、集合框架、主流框架(Spring、Spring Boot、MyBatis)及三大实战项目(微服务电商、响应式博客、企业后台系统),助你系统掌握Java全栈开发技能。
163 1
|
2月前
|
存储 算法 安全
JAVA 八股文全网最详尽整理包含各类核心考点助你高效学习 jAVA 八股文赶紧收藏
本文整理了Java核心技术内容,涵盖Java基础、多线程、JVM、集合框架等八股文知识点,包含面向对象特性、线程创建与通信、运行时数据区、垃圾回收算法及常用集合类对比,附有代码示例与学习资料下载链接,适合Java开发者系统学习与面试准备。
654 0
|
1月前
|
存储 搜索推荐 安全
Java 大视界 --Java 大数据在智能教育学习效果评估与教学质量改进中的应用(209)
本文探讨了 Java 大数据在智能教育中的创新应用,涵盖学习效果评估、教学质量改进及个性化教学方案定制等内容,结合实战案例与代码解析,展现技术如何赋能教育智能化转型。
|
3月前
|
Java 数据库 数据安全/隐私保护
银行流水生成器在线制作,银行转账p图在线生成,java实现最牛的生成器【仅供学习用途】
本资料探讨银行系统核心技术,涵盖交易记录生成、电子回单加密验真及基于Java的财务管理系统开发。主要内容包括:交易记录实体类设计(不可变性与数字签名)
|
2月前
|
存储 Java 测试技术
Java基础 - 面向对象
面向对象编程是Java的核心,包含封装、继承、多态三大特性。封装隐藏实现细节,提升代码可维护性与安全性;继承实现类间IS-A关系,支持代码复用;多态通过继承、重写与向上转型,实现运行时方法动态绑定,提升系统扩展性与灵活性。
|
3月前
|
前端开发 Java 数据库
2025 年 Java 学习完整步骤及详细路线指南
本教程涵盖Java从基础到高级的完整学习路径,包括环境配置、语法基础、面向对象编程、集合框架、多线程、网络编程、数据库操作、Spring Boot、微服务架构及项目实战。通过系统学习与实操,助你全面掌握Java核心技术与企业级应用开发。
427 0

热门文章

最新文章