本文共 1737 字,大约阅读时间需要 5 分钟。
1.类:定义一个学生类,学生类主要由两部分组成
属性:(是什么) class People{
姓名 String name; 年龄 int age; //属性:字段/成员变量/实例变量 学号行为:(我能干什么)
吃饭 睡觉 void eat(){} //行为:方法 学习 }实例化:People p=new People(); //开辟了内存
构造方法:People(){} //不能加void等,即不能有返回值
2 .new:
1).堆上开内存 2).调用构造方法初始化实例变量3.局部变量未初始化则不能使用;成员变量未初始化可以使用。
4.一个源文件里不能有多个public class。
5.CMD中可以用jps查看进程。
6.定义的方法中的变量不占堆中的内存。
class Student{ //类头:占8字节 int age=20; //占8字节 }7.构造方法:如果没有构造方法,系统自动提供一个无参的构造;而自己写了一个构造方法,系统则不再提供。
1). 构造函数的名称必须与类名相同,包括大小写; 2). 构造函数没有返回值,也不能用void修饰. 如果不小心给构造函数前面添加了返回值类型,那么这将使这个构造函数变成一个普通的方法,在 运行时将产生找不到构造方法的错误。 3. 一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。 4. 构造方法可以重载,以参数的个数,类型,顺序8.访问限定符:
public:公有的,谁都可以用。 private:私有的,只能在当前类中使用。 package:同包路径可以访问,是默认值。非同包时在当前类开头写入:import.package.src2 (package.src2是要引用类的路径)9.方法中可以用this关键字:代表当前传进来的对象。 //存在命名冲突时,必要加this关键字,指明为当前对象
10.字符串传入函数,函数中记得加入if(str==null) return;
11.对象的拷贝:用clone(),需要在类中加入对Object的clone()方法重写:
而且在class cat 后要加上implements Cloneable。 1)浅拷贝,存在内存共享,修改其中一个的属性会改变另一个。在类中如果只有int 和String类型的属性时,用这个就可以。 class Address implements Cloneable{ int id; } } protected Object clone() throws CloneNotSupportException{ return super.clone(); } 2) 深拷贝,消灭了内存共享。在类中如果包含自己定义的一些属性,要用这个,否则有内存共享。class Address implements Cloneable{ int id; @Override //需要对这个特有的属性也进行clone的重载 protected Object clone() throws CloneNotSupportedException { return super.clone(); } } class Cat implements Cloneable{ int age; Address address = new Address(); @Override protected Object clone() throws CloneNotSupportedException { Object o = super.clone();// Cat c = (Cat)o; c.address = (Address) this.address.clone(); return c; //返回的是对象 } }
转载地址:http://owcl.baihongyu.com/