城管希课堂之对象

1.面向对象

 面向过程:我应该干什么 重在过程
 * 挑选一个电脑(台式)
 * 1.挑一个CPU 
 * 2.挑一个主板
 * 3.挑一个显卡
 * 4.挑一个显示器
面向对象:重点在对象 我该找谁什么  事务的执行者  指挥者
 * 找一个懂电脑的人 帮你去选购
 * 更贴近任的思维(懒人思维)
 * 想挣钱-->干it-->学it-->找培训机构-->找到了王龙(会扯犊子)
 * 成为一个老板(面向对象思维)
 * 员工:找一个会炸鸡排的
 * 市场:帮我做宣传
 * 收银:帮我收钱
 * 秘书:有事给秘书

2.面向对象的好处

 * 1.将复杂的问题 简单化
 * 2.从事务的执行者 转换为 事务的指挥者 
 * 3.更贴近人的思维(懒人思维)
 * 类和对象
 * java中 最基本的单位 就是类
 * 类:一类抽象事物的描述(模板)
 * 对象:用类创建出来的就是对象(具体的事物)
 * 
 * 车图纸(模板)
 * 名字
 * 咕噜数
 * 排气量
 * 颜色
 * 
 * 车
 * 奥迪 R8
 * 4个轮子
 * 5.0T
 * 红的


public static void main(String[] args) {
		//创建一个学生类的对象
		//类名 对象名 = 初值;
		//成员变量会随对象一起进入堆中
		//new 一次 就在堆中开辟一块内存空间
		//student stu 对象的引用(保存的对象的地址)
		Student stu = new Student();
		Student stu1 = stu;
		
		
		//使用 对象名.属性名 进行赋值和取值
//		stu.name="it彭于晏";
//		stu.name= "城管希";
//		stu.age = 22;
//		stu.gender = "男";
		//调用成员方法 对象名.方法名();
		stu.eat();
		stu.play("刺激战场");
		//那个对象调用的该方法 打印的就是哪个对象 属性
		stu.sayHi();
		
		
	}
/*
 * 学生类
 * 属性:姓名 年龄 性别
 * 吃饭
 * 睡觉
 * 打游戏
 */
class Student {
	// 属性(成员变量 实例变量) 
	// 书写位置:类中 方法外
	// 行为(方法)跟函数一样 就static先不写
	// 书写位置:类中
	String name;
	int age;
	String gender;
	
	//成员方法/实例方法
	public void eat() {
		System.out.println("吃饭");
	}
	public void sleep() {
		System.out.println("睡觉");
	}
	public void play(String game) {
		System.out.println("打游戏"+game);
	}
	//介绍自己的方法
	public void sayHi() {
		System.out.println("姓名:"+name);
		System.out.println("年龄:"+age);
		System.out.println("性别:"+gender);
	}
	
}

                //创建person对象
		Person p1 = new Person();
		p1.fun();
		
		//创建不同包下的同名类对象
		//需要指定完整的包名来创建对象
		//一般情况下 不建议写同名类 书写麻烦
		com.lanou4g.Person  p2 = new com.lanou4g.Person();
		p2.fun();
		
		//创建不同包下的不同名类
		Test test = new Test();
// 参数是基本数据类型
	public static void fun1(int a) {
		System.out.println(a);
		a = 10;
	}
	// 参数是引用数据类型
	// 要什么类型 就给什么类型
	public static void fun2(Person p) {
		p.name = "刘斌";
		p.age = 24;	
	}
	
	public static void main(String[] args) {
		int a=100;
		fun1(a);
		System.out.println(a);
		
		Person p1 = new Person();
		p1.name = "凡鹏";
		p1.age = 28;
		fun2(p1);
		p1.sayHi();
	}

 * 匿名对象:没有名字的对象
 * 1.在方法传参数的时候使用
 * 2.只调用一下方法(不赋值的情况下)

	// 创建两个person对象 并赋值
		// 将重复代码 抽成一个方法
		Person p1 = new Person();
		p1.name = "anglong";
		p1.age = 16;
		p1.sayHi();
		
		Person p2 = new Person();
		setNameAndAge(p2, "menglong", 8);
		
		//使用匿名对象 当方法参数
		//好处:减少代码量 使用方便
		setNameAndAge(new Person(), "坤", 20);
		//匿名对象也是对象 也可以赋值 调用成员方法
		new Person().name = "xin";
		new Person().age = 30;
		new Person().sayHi();
		//只调用方法可以使用匿名对象
		//测试方法时 可能会使用
		new Person().fun();
 * 封装
 * 写方法就是封装的一种
 * 相当于隐藏代码的实现和属性 不能随意修改
 * 需要开放访问的方式(方法) 获取 修改
 * 好处:
 * 1.增加代码的复用性
 * 2.提高代码的安全性
 * 
 * 关键字(权限修饰符)
 * private 私有的
 * 被private 修饰的属性 只能本类中访问


public static void main(String[] args) {
		Phone phone = new Phone();
		phone.setPhoneName("vivo");
		phone.setColor("红色");
		System.out.println(phone.getPhoneName());
		System.out.println(phone.getColor());
		phone.sayHi();
}

class Phone{
	//java bean 规范(java 实体类创建出来的对象)
	//1.声明成员变量 都需要 私有化
	//2.给每个成员变量提供 set/get方法
	//3.必须提供 无参的构造方法
	private String phoneName;
	private String color;
	//对外开放 访问方式
	//获取方法
	public String getPhoneName(){
		return phoneName;
	}
	//修改方法(设置方法)
	public void setPhoneName(String phoneName){
		//就近原则
		//关键字 this 代表的是 本类的对象
		//this.成员变量 获取本类的 成员变量
		//this.成员变量 = "哈哈";给本类的成员变量赋值
		//this.成员方法 调用本类的成员方法
		//谁调用了这个方法 谁就是this
		this.phoneName = phoneName;
	}
	//命名规范 
	//获取 get+ 成员变量名(首字母大写)
	//修改 set+ 成员变量名(首字母大写)
	public String getColor() {
		return color;
	}
	public void setColor(String color){
		this.color = color;
	}
	
	public void sayHi() {
		System.out.println(phoneName+" "+color);
	}

	}


* 成员变量 和 局部变量区别
 * 1.在类中位置不同:
 * 成员变量:在类中方法外
 * 局部变量:在方法定义中或者方法声明上
 * 2.在内存中的位置不同:
 * 成员变量:在堆内存
 * 局部变量:在栈内存
 * 3.生命周期
 * 成员变量:随着对象的创建而存在,随着对象的消失而消失
 * 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
 * 4.作用域
 * 成员变量:整个类中 
 * 局部变量:方法中
 * 5.初始值
 * 成员变量:跟堆内存一样 默认初始值
 * 局部变量:默认没有初值 不给初值 编译报错


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值