笔记(面向对象)

/**
 * 
 * @author		沉默小吴
	@Date		2024年7月29日下午8:33:21
 *
 */
public class Test {
	
//一、面向对象===========================
	
	//1.1概述=============================
	/*
	 * 什么是面向对象?
	 * 
	 * 面向对象是相对于面向过程来讲的,面向对象方法,
	 * 
	 * 把相关的数据和方法组织为一个整体看待,从更高层次
	 * 
	 * 来进行系统建模,更贴近事物的自然运行模式
	 * 
	 * 
	 */
	
	//1.2面向对象和面向过程====================
	
	/*
	 * 面向过程:侧重分步骤,
	 * 
	 * 面向对象:侧重分模块
	 * 
	 */
	
	//1.3构造方法============================
	
	/*
	 * 构造方法:只要就是用于创建对象时调用,并给对象的初始化赋值
	 * 
	 * 权限修饰符: 方法名/类名(参数列表){方法体}
	 * 
	 * 构造方法没有返回值,连void都没有,另外构造方法的方法名必须和类名一致
	 * 
	 * 如果类中,没有定义构造方法,则默认有一个公共的无参构造public类名(){}
	 * 
	 * 但是我们定义了构造方法,则不会在提供默认的无参构造
	 * 
	 * 所以一般我们在构造方法的时候也会手动创建一个无参构造
	 * 
	 */
	public Test(int i){
		
	}
	public Test(){
		
	}
	
	//1.4类和对象=============================
	/*
	 * 对象:
	 * 
	 * 1.代码角度:new的一个实例,封装了成员属性
	 * 
	 * 2. 数据角度:封装数据和逻辑的一种方式
	 * 
	 * 3.现实角度:对象就是某一个具体的个体一切皆对象
	 * 
	 * 4.设计角度:从一个实体对象中抽象出来某些属性的一种实体表示
	 * 
	 * 类:描述了一类事物的属性和特征
	 * 
	 * 类中封装属性,对象封装属性值
	 * 
	 */
	
	//1.5实例化====================================
	
	/*
	 * 1.加载相关类到方法区
	 * 
	 * 2.在堆内存开辟内存空间
	 * 
	 * 3.调用构造方法,栈内存开辟栈帧,并对内存进行数据初始化
	 * 
	 * 4.构造方法弹栈,把堆内存内存地址返回
	 */
	
	//1.6对象使用==================================
	
	public static void main(String[] args){
	Student student1=new Student(1001,"张三",false,18,"石家庄");
	Student student2=new Student(1002,"李四",false,19,"北京");
	
	//对象.成员属性
	
	student1.setName("王五");
	System.out.println(student1.getName());
	System.out.println(student2.getName());
	
	//1.7Bean==========================================
	
	/*
	 * 属性私有化,提供对应的getter/setter方法,提供有参构造和无参构造
	 * 
	 * POJO : 普通实体类
	 * 
	 * Model : 一般会和数据库表一一对应
	 */
	
	//1.8常见异常===================================
	
	Student s1=new Student();
	s1.num=3;
	s1=null;
	
	//当使用null值,访问成员属性时,会出现空指针异常
	
	System.out.println(s1.num);
	
	//1.9对象调用静态属性=======================================
	
	Student student3=new Student();
	Student student4=new Student();
	student3.num=3;
	System.out.println(s1.num);
	//编译后,会自动把student3和student4转变为Student类名调用
	
	//所以,尽管student3是null访问静态属性,也不会出现空指针
	
	student3=null;
	System.out.println(student3.num);
	System.out.println(student4.num);
	
	//1.10注释事项==================================
	
		//1.10.1静态调用成员=================
	
		//需要创建对象调用
	
		//1.10.2传值和传引用==================
	
	Animal a=new Animal(18);
	m1(a);
	System.out.println("main:"+a.age);
	}
	public static void m1(Animal a){
		a.age=22;
		System.out.println("m1:"+a.age);
	}
	//1.10.3 区分成员方法和构造方法=====================
	
		//就看有没有返回值类型,没有就是构造方法===================
	
}


.age=22;
System.out.println(“m1:”+a.age);
}
//1.10.3 区分成员方法和构造方法=====================

	//就看有没有返回值类型,没有就是构造方法===================

}


  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值