面向对象编程笔记
2018-06-18 02:20:03来源:未知 阅读 ()
Accessor(访问器)和Mutator(更改器)方法
如果一个方法改变了调用它的对象,我们便称之为更改器方法,反之,则是访问器方法。
其中ArrayList<String> a = new ArrayList<>(); a.add(""); add方法为更改器方法,改变了对象a的值
this 引用
在对象上调用方法是,this引用指向该对象,当实例变量和局部变量同名时,非限定名表示局部变量,而this.value 表示实例变量
实现构造函数
public Employee(String name,double salary){
this.name = name;
this.salary = salary;
}
Employee fred = new Employee("fred",1000);
重载(有多个名称相同但是参数不同的方法版本,name这个方法就是重载的)
public Employee(double salary){
this.salary = salary;
}
Employee Peter = new Employee(10000);
调用另一个构造函数
public Employee(double salary){
this("",salary);
}
需要注意的是这里的this不是正被构造对象的引用。相反,它是一种特殊语法,只用在同类的另一个构造函数调用中。
final
当使用可修改对象的引用时,final修饰符只是声明该引用永不改变。修改对象本身是完全合法的
public class Person{
private final ArrayList<Person> friends = new ArrayList<>();
// 可以给该列表添加元素
}
方法可以修改friends引用的数组列表,但是他们不能用其他的对象替代。特别是friends不能变为null。
无参构造函数
public Employee(){
this.name = "";
this.salary = 0;
}
当一个类已经存在一个构造函数时,系统便不会在自动给他分配一个无参的构造函数,此时如果还需要无参的构造函数,则需要自己写一个
包的声明
要将一个类放到一个包中,需要将包的声明作为源文件的第一个声明
类路径
可以将class文件放到一个或者多个被称为jar文件的归档文件中
jar cvf library.jar com\mycompany\*.class
在项目中需要使用类库中的jar文件时,需要指定class path告诉编译器和虚拟机这些jar文件在哪里。class path可以包含
1. 包含class文件的目录
2. JAR文件
3. 包含JAR文件的目录
import 声明与C或C++的 #include 指令完全不同,#include指令为编译器包含了头文件。import不会导致文件重新编译。它们只是缩短了名称
嵌套类
为了限制可见性或者避免因为导入一些使用了通用名称的包而产生混乱。
静态嵌套类
例如
public class Invoice(
private static class Item{//private 方法保证了只有Invoice方法能够访问它
String description;
int quantity;
double unitPrice;
double price(){
return quantity*unitPrice;
}
}
private ArrayList<Item> items = new ArrayList<>();
)
当然也可以 public static class Item{ // 这样和在其他任何类外部声明没有本质上的区别
}
内部类
区别于静态嵌套类,内部类方法可以持有,访问它的外部类的实例变量。
例如
public class NetWork{
public class Member{
private String name;
public void leave(){
members.remove(this); // 此处的members是外部类的实例变量
}
}
private ArrayList<Member> members;
}
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Netty1:初识Netty
- 通过与C++程序对比,彻底搞清楚JAVA的对象拷贝 2020-06-11
- Java笔记:集合 2020-06-10
- 因为命名被diss无数次。简单聊聊编程最头疼的事情之一:命名 2020-06-10
- Java基础复习——类和对象 2020-06-09
- Java3个编程题整理 2020-06-09
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash