java第七天

1.Java中两大类型

基本数据类型:int long short double

引用类型:类 接口 数组

栈和堆:

局部变量:栈直接存储基本数据类型的值

​ 堆中存储引用类型的数据,栈中存储对象的地址 int [] arr={1,3,4};

栈:比较小 存取快 存储特点:先进后出 方法运行结束的时候,数据出栈

堆:大 存取速度要慢 堆:只要有空间,就可以申请内存,当栈中的引用出栈的时候,内存变为垃圾内存,等待垃圾回收

面向对象:封装 继承 多态

定义类

public class Car{

​ 成员变量

​ 成员方法

}

使用类

main(){

​ 1.导包

​ 2.创建对象 Car car=new Car();

​ 3.使用属性 car.price=10000000;

​ syso(car.price);//成员变量的是有默认值

}

1.今日单词

price 价格

brand 品牌

private 私有

public 公有的

2.学习目标

栈堆内存图

//引数传递  传递的是引用类型 传递地址
//返回值     返回的是引用类型  返回的是地址

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

1.定义位置不一样

局部变量:方法内部

成员变量:类内方法外

2.作用范围不一样

局部:只有方法内部可以使用 出了方法就不能用

成员变量:整个类都可以使用

3.默认值不一样

局部变量:没有默认值 如果想使用 必须进行赋值

成员变量:有默认值 默认值规则和数组一样

4.内存位置不一样

局部:基本数据类型;数据直接存储在栈中

引用类型:数据存储在堆中,栈中存储对象的地址

成员变量:存储在堆

5.生命周期不一样

局部变量:随机方法进栈而诞生 随着方法而消失

成员变量:随着对象的创建而诞生 随着对象被立即回收而消失

面向对象三大特性:

1.封装 广义上的封装:封装一个方法 封装一个模块 框架 Mybatis

​ 狭义上的封装:private

/**
 * private  私有  本类内部可以访问  类外部不可以访问
 * 
 * 封装:一个私有的成员变量  两个公开的方法
 * 公开的方法 Getter/Setter方法
 * 
 * 必须叫setXxx和 getXxx 命名规则  
 * boolean变量  set不变setXxx get变为 isXxx
 * 
 * 一个私有的成员变量  只有get没有set  只读不能写
 * 一个私有成员变量   只有set没有get  只能写不能读
 * @author XuYang
 *
 */
public class Person {

	private boolean gender;
	public void setGender(boolean b){
		gender=b;
	}
	public boolean isGender(){
		return gender;
	}
	private String name;
	public void setName(String n){
		name=n;
	}
	public String getName(){
		return name;
	}
	private int age;//保护age   用private
	//1.使用private保护成员变量
	//2.外部不能访问  要继续使用被保护的成员变量  怎么办?提供公共的方法 来访问
	//3.提供两个公有的方法 分别访问和设置
	

	public int getAge(){
		return age;
	}	
}

this 关键字

构造函数

/**
 * 构造函数 :构造方法是专门用来创建对象的方法
 * 作用1.创建对象
 * 2.初始化的变量
 * name 赋值  应该在创建对象的完成  创建对象调用构造函数
 *语法:定义
 *public  类名称(参数列表){
 *   方法体
 *}
 *调用:当我们使用new关键创建对象的时候  其实就是在调用构造方法
 *
 *注意事项
 *1.构造方法的名字和类名必须完全一样 ,大小写也要一样
 *2.构造方法没有返回值  void 也不能写 
 *3.构造返回不能return 一个具体的结果
 *4.如果没有编写任何的构造方法 编译器会提供一个默认的构造方法 (没有参数  没有方法体)  低保原则
 *  如果一旦自己编写了构造方法 编译器就不提供了  
 *5.构造方法可以重载
 *
 *6.设置构造函数为private  外部不能创建对象 单例模式
 * @author XuYang
 *
 */
public class Cat {

    private String name;
    //私有的成员变量

//    public  Cat(String name){
//    	this.name=name;
//    }
    private Cat(){
    	
    }
	public String getName() {
		return name;
	}


//	//无参数的构造函数    构造对象
//    public Cat(){
//    	System.out.println("哈哈哈  我被调用了");
//    }
    
}

标准类

/**
 * Java 标准类
 * 1.所有成员变量都用private修饰
 * 2.为每一个成员变量编写一对儿get/set方法
 * 3.编写一个无参数的构造方法
 * 4.编写一个全参的构造方法
 * @author XuYang
 *
 */
public class Teacher {

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public double getSalary() {
		return salary;
	}

	public void setSalary(double salary) {
		this.salary = salary;
	}

	private String name;
	
	private int age;
	
	private double salary;
	
	
	public Teacher(){
		
	}
	
	public Teacher(String name,int age,double salary){
		this.name=name;
		this.age=age;
		this.salary=salary;
	}
	
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值