java菜鸟--类和对象

一、面向过程与面向对象

面向过程: 从事物执行者的角度思考问题,我该干什么  重点在过程----事物流程

面向对象: 从事物的指挥者角度思考问题,我应该找谁干什么  重点在对象

面向对象的优点:

1.将复杂问题简单化

2.从事物的执行者转化为事物的指挥者

3.更贴近人的思维(懒人思想)


二、类和对象

类是Java中最基本的单位,是一类抽象事物的集合  对抽象事物的描述(模板)

对象: 用类创建出来的具体的事物就是对象

抽象描述类:

类中的属性是指成员变量

类中的行为是指成员方法


class Student{
	//属性(成员变量 实例变量)类中方法外
	//行为(方法) 跟函数一样 就static先不写 类中
	String name;
	int age;
	String gender;
	
	//方法
	public void eat(){
		System.out.println("吃饭");
	}
	public void playGame() {
		// TODO Auto-generated method stub
		
	}
	public void sleep(){
		System.out.println("睡觉");
		
	}
	public void play(String game){
		System.out.println("打"+ game);
		
	}
}


三、成员变量与局部变量

成员变量与局部变量的区别:

1.书写位置不同:

成员变量:  类中方法外

局部变量:  方法中或方法上(参数位置)

2.在内存中的表现不同:

成员变量:  堆内存中

布局变量:  栈内存中

3.生命周期不同:

成员变量:  随着对象进入堆内存中创建,随着对象的销毁而销毁

布局变量:  随着方法的调用而入栈,随着方法的结束而销毁

4.作用域不同:

成员变量:  整个类中

局部变量:  方法中

5.初始值不同:

成员变量:  跟堆内存一样,有默认的初始值 0 null

局部变量:  默认没有初值 不给初值编译时会报错 (局部变量声明时必须带有初值


四、同名类

在同一个项目中可以有同名的类,创建在不同的包下

创建不同包下的同名类,需要指定完整的包名来创建对象

一般情况下不建议写同名类

例如: 在包3和包4下各创建一个person类

//创建一个包3类的person对象

Person p1 = new Person( );

//在继续创建一个包4类下的person对象

com.bao3.Person p2 = new com.bao3.Person( ); // 需要指定完整的包名


五、匿名对象

匿名对象: 没有名字的对象

1. 一般 在方法传参的时候调用

2. 只调用一下方法(不赋值的情况下)

使用匿名对象当方法的参数 可以减少代码量,方便使用


 匿名对象:没有名字的对象
 * 1.在方法传参数的时候使用
 * 2.只调用一下方法(不赋值的情况下)
 * 
 * */
public class Demo05 {
	
	public static void setNameAndAge(Person p,
									String name,
									int age) {
		p.name = name;
		p.age = age;
		p.sayHi();
		
	}
	public static void main(String[] args) {
		//创建  两个person对象 并赋值
		Person p1 = new Person();
		p1.name = "wanglong";
		p1.age = 16;
		p1.sayHi();
		
		Person p2 = new Person();
		setNameAndAge(p2, "menglong", 8);
		
		//使用匿名对象 当方法参数
		//好处:减少代码量 使用方便
		setNameAndAge(new Person(), "kun", 20);
		//匿名对象 也是对象 也可以赋值属性 调用成员方法
		new Person().name = "xin";
		// 只调用方法可以使用匿名对象
		// 测试方法时 可能会使用
		
	}
}
六、封装与构造方法
    封装

Java中 写 方法、函数 就是封装的一种

封装相当于隐藏了代码的实现和属性 不能随意修改

需要开放访问的接口(方法 方式) 来获取或修改封装的代码

优点:

1.提高了代码的复用性

2.提高了代码的安全性

关键字 中的 权限修饰符--> private 私有的

被private修饰的属性 只能本类中访问

java bean 规范 对象

1.声明成员变量 都需要 私有化
2.给每一个成员变量提供  set/get方法+
3.必须要有 无参的构造方法



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值