面向对象,成员变量,局部变量,匿名对象,封装,This关键字

目前五门已经可以用计算机表示八大基本数据类型,但是在实际开发中,五门还需要存储其他的数据。
比如一个人,一条狗,一张图片,一个视频等```那么我们该怎么做呢?
我们学习编程语言,就是为了模拟现实世界的事物,实现信息化。
其实在计算机中使用Java语言模拟现实世界也很简单,Java为我们提供了类。
现实生活中如何描述一个事物呢?
属性 该事物的特征描述
方法 该事物的动作行为
我们学习的Java语言最基本单位就是类,所以,我们使用类来描述事物。

类的理解:

1.类是用来描述现实事物的。
2.类是抽象的。
3.类可以理解为一个模板,是属性好方法的集合的模板。
4.类是Java中最基本的组成单位。
5.Java使用Class关键字来描述类。
6.类的本质就是用来[组织代码,封装数据]

对象的理解:

1.对象是客观存在的。
2.万物皆对象。
3.对象是在类的基础上创建的。
4.对象又被称作为 实例/变量/引用/对象。

类定义的格式:

[访问权限修饰符] clsaa 类名 {
	类体;
	属性/成员变量;
	方法/成员方法;
}

如何来创建一个对象?
格式: 类名 对象名 = new 类名();
如何访问对象成员?
格式:
对象名.成员变量
对象名.成员方法

public static void main(string[] args) {
//  类名 对象名 = new 类名();
	ren xm = new ren();
	System.out.println(xm.name);
	System.out.println(xm.age);
	System.out.println(xm.isMarried);
	
	xm.name = "xm";
	xm.age = 18;
	xm.isMarried = true;
	
	System.out.println(xm.name);
	System.out.println(xm.age);
	System.out.println(xm.isMarried);
	xm.eat();
	xm.sleep();
	xm.washHead();
	
}
class ren {
	String name;
	int age;
	String gender;
	boolean isMarried;
//成员方法: 之前方法怎么写,这里就怎么写,去掉static
	public void eat() {
		System.out.println("吃饭");
	}
	public void sleep() {
		System.out.println("睡觉");
	}
	public void washHead() {
		System.out.println("洗头");
	}
	
	public void introduceMyself() {
		System.out.println("大家好,我叫%s,我今年%s岁了" + (isMarried ? "我已婚" : "我未婚"), name, age );
	}

}

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

1.定义的位置不一样。
成员变量: 定义在类体以内,方法体以外。
局部变量: 方法的声明上(形参),或者方法体内。

2.内存的位置不一样。
成员变量: 在堆区分配内存空间
局部变量: 在栈区分配内存空间

3.初始值不一样。
成员变量: 成员变量默认有初始值,系统会赋予如下初始值
byte short int long 0
float double 0.0
char \u0000
引用类型 null

局部变量: 默认没有初始值
4.生命周期不一样。
成员变量:随着对象的创建而创建,随着对象的销毁而销毁
局部变量:随着方法的调用而创建,随着方法的销毁而销毁

5.当成员变量和局部变量重名的时候,局部变量优先(就近原则)

匿名对象:

1.本质还是一个对象,没有名字
2.匿名对象只能够调用一次
3.由于匿名对象使用完毕之后立刻就成为的、垃圾对象,等待垃圾回收器在空闲的时候回收垃圾
4.一般可以节约内存资源,在Java中应用少,在Android应用多
也可以简化编程

什么是垃圾对象:

1.匿名对象
2.对象被赋值为null
3.对象所在的方法调用完毕
4.当主方法调用完毕
5.当对象被被重新new

为什么需要封装?

1.防止外界修改成员属性
2.可以提供外界公共的方式并且加以权限控制
3.让类的数据更加的安全

封装的概述: 对数据进行访问权限的控制,其实本质主要体现访问权限修饰符上
使用关键字: private 进行封装
封装的步骤:
1.给成员添加访问权限修饰符
2.对外界提供公共的访问方式
3.在对外访问方法中提供访问控制


package com.sxt;

public class ClassDemo_03 {

	public static void main(String[] args) {
		Iphon s = new Iphon();
		s.setMoney(6999);
		s.setColer("中国红");
		s.setModel("128GB");

		System.out.println("价格:" + s.getMoney());
		System.out.println("颜色:" + s.getColer());
		System.out.println("型号:" + s.getModel());

	}

}
class Iphon {
	private int money;
	private String color;
	private String model;
	
	public int getMoney() {
		return money;
	}
	public void setMoney(int money) {
		this.money = money;
	}
	public String getColer() {
		return color;
	}
	public void setColer(String coler) {
		this.color = coler;
	}
	public String getModel() {
		return model;
	}
	public void setModel(String model) {
		this.model = model;
	}
		
}

this的特点
1.用来区分成员变量和局部变量
2.创建任何一个对象都会创建一个this对象和这个变量指向同一个堆区空间
3.this只能出现在类的内部
4.this单独使用表示当前对象,谁调用就是谁
5.默认任何一个类中成员都隐含了this关键字

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值