博客
关于我
Java:class4 类和对象
阅读量:276 次
发布时间: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/

你可能感兴趣的文章
在 Ubuntu 17.10 上安装 AWFFull Web 服务器日志分析应用程序 | Linux 中国
查看>>
FreeDOS 的简单介绍 | Linux 中国
查看>>
查看一个归档或压缩文件的内容而无需解压它 | Linux 中国
查看>>
极致技术探索:显卡工作原理 | Linux 中国
查看>>
如何在 Ubuntu 系统中添加一个辅助 IP 地址 | Linux 中国
查看>>
LCTT 2018:五周年纪念日 | Linux 中国
查看>>
如何在 Ubuntu 16.04 强制 APT 包管理器使用 IPv4 | Linux 中国
查看>>
使用 top 命令了解 Fedora 的内存使用情况 | Linux 中国
查看>>
怎样解决 “sub process usr bin dpkg returned an error code 1” 错误
查看>>
Bat:一种具有语法高亮和 Git 集成的 Cat 类命令 | Linux 中国
查看>>
Termtosvg:将你在 Linux 终端中操作录制成 SVG 动画 | Linux 中国
查看>>
Linux 上最好的五款音乐播放器 | Linux 中国
查看>>
如何用 Linux 命令行发电子邮件 | Linux 中国
查看>>
网易云首倡中台方法论,发布全链路中台技术方案
查看>>
传输层协议
查看>>
DHCP和DHCP中继
查看>>
黄毅然的JAVA学习(七)
查看>>
Spring5框架工具类
查看>>
OPC应用实例和故障排除培训
查看>>
什么是网络基础设施?
查看>>