调用类的普通方法
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) 首先类名必须有意义,首字母大写,Book,Person,Student,JiaGe。
(2) 所有属性(变量),必须使用private封装。
(3) 提供setter、getter方法。setXxx(),getXxx()。
(4) 可以提供多个构造方法,但是至少保留一个无参构造。
(5) 类中不允许使用输出语出,必须交给主类的主方法来处理。返回信息的方法,方法名暂时定位getInfo();