Java学习-面向对象(上)

Java学习-面向对象

类=属性+方法
面向对象:以类的方式组织代码,以对象的方式封装数据。

方法的定义和调用

修饰符、返回类型、break和return、方法名、参数列表、异常抛出…
静态方法和非静态方法、形参和实参、值传递和引用传递、tiis…
静态方法:又称类方法,是加staic关键字修饰的方法,在类定义的时候就被分配和装载入内存中。静态方法属于类所有,类实例化前即可使用,同时不能使用super和this关键字。静态方法只能调用静态方法以及访问静态数据域,不能调用实例方法或者访问实例数据域。
非静态方法:又称为实例方法、成员方法,是不加staic关键字修饰的方法,在类定义时不分配内存,只有在类被实例化为对象后,对象调用该方法时才被分配内存,因此非静态方法属于对象,不属于类。非静态方法既能调用静态方法以及访问静态数据域,也能调用实例方法或者访问实例数据域。
形参:形参变量是函数里的变量,只有在被调用时才分配内存,调用结束后立即释放,所以形参只在函数内部有效。
实参:实参可以是常量、变量、表达式、函数等,在调用时必须有确定的值,以便拷贝给形参。
值传递

public class Demo{
	public static void change(int a){a=10;}
	public static void main(String[] args){
		int a=1;
		System.out.println(a);//1
		Demo.change(a);
		System.out.println(a);//1
	}
}

引用传递

class Person{String name;}
public class Demo{
	public static void change(Person person){person.name="ABC";}
	public static void main(String[] args){
		Person person = new Person();
		System.out.println(person.name);//null
		Demo.change(person);
		System.out.println(person.name);//ABC
	}
}

类与对象的创建

使用new关键字创建,除了分配内存空间,还会对创建的对象进行默认初始化,以及调用类的构造器。

构造器

一个类即使什么都不写,也会存在一个构造方法,必须和类名相同,必须没有返回类型,也不能写void。
1.使用new创建对象本质是调用构造器
2.初始化
一旦定义了有参构造,无参就必须显式定义。

public class Person{
	String name;
	public Person(){}
	public Person(String name){this.name=name;}//重载
}
public static void main(String[] args){
	Person person = new Person("Nashor");
	System.out.println(person.name);//Nahsor
}

创建对象内存分析

public class Application{	//方法区:Application
	public class Pet{
		public String name;
		public int age;
		public void shout(){System.out.println("叫");}
	}
	public static void main(String[] args){	
	//方法区:main(),常量池:"旺财",栈:main()
	
		Pet dog = new Pet();	
		//方法区:Pet、name=null、age=0、shout()
		//栈:dog引用→堆:new pet()
		//常量池:"旺财"→堆:name
		//堆:shout()→方法区:shout()
		
		dog.name="旺财";
		dog.age=3;
		dog.shout();
	}
}

小结

1.对象通过引用操作:栈→堆
2.属性默认:数字:0、0.0,char:u0000,boolean:false,引用:null
3.对象创建:new,构造器
4.类:静态的属性,动态的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值