博客
关于我
Java:class4 类和对象
阅读量:274 次
发布时间:2019-03-03

本文共 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/

你可能感兴趣的文章
Base理论介绍
查看>>
HashMap和ArrayList初始大小和扩容后的大小
查看>>
volatile关键字和AtomicInteger
查看>>
RedisTemplate中opsForValue()中的方法
查看>>
redisTemplate.opsForHash()
查看>>
Mac下安装jdk8
查看>>
知识框架梳理
查看>>
JUC知识
查看>>
lamba语法格式
查看>>
jvm栈和寄存器
查看>>
局部变量表
查看>>
循环体内,字符串的连接方式,使用StringBuilder的append方法进行扩展
查看>>
maven生命周期
查看>>
方法的绑定机制-静态绑定和动态绑定
查看>>
jvm
查看>>
内核程序和应用程序
查看>>
什么是垃圾
查看>>