java学习--第十天

原视频地址:【零基础 快速学Java】韩顺平 零基础30天学会Java​​​​​


Java基础-面向对象编程

对象内存布局

这里的12是基本数据类型,字符串是引用类型,所以在内存中的存在形式不同

类与对象

属性/成员变量
  1. 成员变量 = 属性 = field字段
  2. 属性是类的一个组成部分,一般是基本数据类型,也可是引用类型(对象、数组)

属性的注意细节
  1. 访问修饰符 属性类型 属性名;(四种访问修饰符:public,proctected,默认,private)
  2. 属性的定义类型可以为任意类型
  3. 如果不赋值,有默认值,规则和数组一致


方法

  1. 方法(成员方法),在类里面定义方法
  2. 方法写好后,如果不去调用,不会执行代码;需要创建对象,然后调用方法
public class hello01 {
	public static void main(String[] args) {

		Person p1 = new Person();//创建对象
		p1.speak();//使用speak这个方法
	}
}
	class Person {
		String name;
		int age;

		//public表示方法公开
		//void是空的意思,没有返回值
		//speak是方法名,()是形参列表
		//{}里面是方法体,调用方法时会执行里面的代码
		public void speak() {
			System.out.println("我是一个好人");
		}
	}

利用方法传入参数
public class hello01 {
	public static void main(String[] args) {

		Person p1 = new Person();
		p1.cal(5);

	}
}
	class Person {
		String name;
		int age;

		public void cal(int n) {
			int res = 0;
			for(int i = 1; i <= n; i++){
				res += i;
			}
			System.out.println(res);
		}
	}

利用方法完成两数相加
public class hello01 {
	public static void main(String[] args) {

		Person p1 = new Person();
		int returnRes = p1.sum(5,13);
		System.out.println(returnRes);
	}
}
	class Person {
		String name;
		int age;

	public int sum(int num1,int num2){
		int res = num1 + num2;
		return res;
	}

}
**方法在内存中的调用机制
  1. ①执行完后在堆生成一个对象
  2. ③执行完后在栈中单独开辟一个getsum空间
  3. 执行到⑥时,res会返回给returnRes,然后将getSum栈释放掉

方法调用小结

1.当程序执行到方法时,就会开辟一个独立的空间(栈空间)

2.当方法执行完毕,或者执行到return语句时,就会返回,

3.返回到调用方法的地方

4.返回后,继续执行方法后面的代码

5.当main方法(栈) 执行完毕,整个程序退出

方法的定义

public 返回数据类型 方法名 (形参列表){//方法体

语句;

return 返回值;

}

  1. 形参列表:表示成员方法输入(给调用的时候提供指导 ---理解)

  2. 返回数据类型:void表示没有返回值

  3. return语句不是必须的

方法use detail--访问修饰符(后续会有详解)

访问修饰符作用就是控制 方法使用的范围

类型分为:public protected 默认 private

方法use detail--返回数据类型
  1. 一个方法最多有一个返回值(如果需要多个返回可以用数组)

    public class hello01 {
    	public static void main(String[] args) {
    		AA a = new AA();
    		int[] res = a.getSumAndSub(1,4);
    		System.out.println("和=" + res[0]);
    		System.out.println("差=" + res[1]);
    
    	}
    }
    
    class AA{
    	public int[] getSumAndSub(int n1, int n2){
    		int[] resArr = new int[2];
    		resArr[0] = n1 + n2;
    		resArr[1] = n1 - n2;
    		return resArr;
    	}
    }
    

  2. 返回类型可以为任意类型,包含基本类型或引用类型(数组、对象)

  3. 如果方法要求有返回数据类型,那么方法体最后执行的语句必须为return 值

  4. 如果方法是void,则方法体中可以没有return语句,或者只写return

  5. 之一返回值类型和return值类型一致 或者兼容(满足数据类型的精度要求)

方法use detail--形参列表
  1. 一个方法可以有0个参数,也可以有多个参数,中间逗号隔开 例如:getSum(int n1,int n2)

  2. 参数类型可以为任意类型,包括基本数据类型或引用数据类型

  3. 调用带参数的方法时候,注意传入类型的类型一致 或者兼容(满足数据类型的精度要求)

  4. 方法定义时的参数为形式参数,简称形参;方法调用时的传入的参数为实际参数,简称实参(注意类型一致、兼容,个数,顺序一致

方法use detail--调用
  1. 同一个类中的方法调用:直接调用

    public class hello01 {
    	public static void main(String[] args) {
    		AA a = new AA();
    		a.ok();
    	}
    }
    
    class AA{
    	public void print(int n){
    		System.out.println("打印出一个整数=" + n);
    	}
    	public void ok(){
    		print(10);
    		System.out.println("继续执行吧");
    	}
    }
    

  2. 跨类中的方法调用:需要通过对象名调用

    public class hello01 {
    	public static void main(String[] args) {
    		BB b = new BB();
    		b.hi();
    	}
    }
    
    class AA{
    	public void print(int n){
    		System.out.println("打印出一个整数=" + n);
    	}
    	public void ok(){
    		print(10);
    		System.out.println("继续执行吧");
    	}
    }
    
    class BB{  //关键看这边
    	public void hi(){
    		System.out.println("我是BB的hi哦");
    		AA a = new AA();
    		a.print(20);
    	}
    }
    

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值