面向对象

调用类的普通方法

class Lear{
	public static void learn(){
		System.out.println("we learn java and oracle");
	}
}

public class Oij{
	public static void main(String args[]){
		//类  对象=new 类();
		Lear l=new Lear(); //实例化
		l.learn(); //对象调用方法
	}
}

  

实例化类的语法(使用)

类名 对象=new 类名();

调用类的属性

class Person{
	String name;
	int age;
	public String say(){
		return "姓名:"+name+",年龄:"+age;
	}
}

public class Oij{
	public static void main(String args[]){

		Person per=null;
		per=new Person();
		//Person per=new Person(); //实例化

		per.name="xxx"; //通过对象调用属性
		per.age=18; //通过对象调用属性
		String str=per.say(); //通过对象调用方法
		System.out.println(str);
	}
}

  给出两片区域:

      分堆内存和栈内存

  堆内存:保存所有对象的属性

  栈内存:保存堆内存的地址

引用传递

class Person{
	String name;
	int age;
	public String say(){
		return "姓名:"+name+",年龄:"+age;
	}
}

public class Oij{
	public static void main(String args[]){
		Person p1=new Person();
		p1.name="王世龙";
		p1.age=23;
		Person p2=new Person();
		p2.name="林依政";
		p2.age=22;

		p2=p1; //地址改变了

		System.out.println(p1.say()); //姓名:王世龙,年龄:23
		System.out.println(p2.say()); //姓名:林依政,年龄:23
	}
}

  

没有栈内存指向的堆内存对象称之为垃圾。GC垃圾回收,不定期的清理

封装(简单的封装)

class Person{
	private String name; //私有的
	private int age; //私有的
	public void setName(String n){
		name=n;
	}
	public void setAge(int a){
		age=a;
	}
	public String say(){
		return "姓名:"+name+",年龄:"+age;
	}
}

public class Oij{
	public static void main(String args[]){
		Person p1=new Person();
		p1.setName("王世龙"); //p1.name="王世龙";
		p1.setAge(23);
		System.out.println(p1.say()); //姓名:王世龙,年龄:23
	}
}

  

实例化语法:

(1)类名 (2)对象名=(3)new (4)类名();

(1) 我们可以定义自己类

(2) 我们自己起的名字,一般首字母小写

(3) 一旦new表示在内存开辟空间

(4) Person(),构造方法

构造方法一般用来做一些初始化的工作,他只在实例化的时候被调用一次。

构造方法及其重载

public Person(){ //构造方法
		System.out.println("***");
	}
	public Person(String n,int a){ //构造方法重载
		name=n;
		age=a;
	}
Person p=null;
		p=new Person("德玛西亚",25);
		System.out.println(p.getName()+" "+p.getAge());

匿名对象

System.out.println(new Person("德玛西亚",25).getInfo());

构造方法与普通方法的区别:

构造方法只在实例化的时候被调用1次。

普通方法可以被对象调用多次。

简单Java

(1) 首先类名必须有意义,首字母大写,BookPersonStudentJiaGe

(2) 所有属性(变量),必须使用private封装。

(3) 提供settergetter方法。setXxx(),getXxx()

(4) 可以提供多个构造方法,但是至少保留一个无参构造。

(5) 类中不允许使用输出语出,必须交给主类的主方法来处理。返回信息的方法,方法名暂时定位getInfo();

原文地址:https://www.cnblogs.com/zyn0216/p/7501072.html