JAVA温习课堂3
来源:互联网 发布:上海网页美工培训班 编辑:程序博客网 时间:2024/04/30 10:29
15、面向对象 三大特征:封装、继承、多态 类class 是一类事物描述,是抽象的、概念上的定义 对象Object 是实际存在的该类事物的每个个体,也称为实例 instance 修饰符:public private protected 类名定义标准:第一个单词首字母小写后继单词首字母大写 返回值类型 return 返回值; 无返回值 void 使用 new + 构造方法【new + 类名()】,来创建一个新的对象 堆内存存放产生的对象,栈内存的对应对象名存放该堆内存的首地址 使用 对象名.对象成员 来访问对象的成员 每产生一个新的对象,都对应在堆内存中开扩新的内存空间,所以两个对象之间值的改变不相互影响定义一个Person类 public class Person{ //成员变量 属性 String name ; int age ; //构造方法 public Person(String name,int age){ this.name = name; this.age = age; } //ToString方法 public String toString() { return "Person [name=" + name + ", age=" + age + "]"; } //eat方法和sleep方法 public void eat(){ System.out.println("正在吃饭"); } public String sleep(int time){ return "睡了" + time + "小时"; } //getter和setter方法 public void setName(String name){ this.name = name; } public String getName(){ return this.name; } public void setAge(int age){ this.age = age; } public int getAge(){ return this.age; } }测试Person类 public static void main(String[] args) { Person person = new Person("EngineerZhong",20); person.eat(); String temp = person.sleep(1); System.out.println(temp); temp = person.toString(); System.out.println(temp); }输出结果 正在吃饭 睡了1小时 Person [name=EngineerZhong, age=20]匿名对象【没有名字的对象,通常只需要进行一次方法调用】 不定义对象的句柄,直接调用对象的成员方法。 将匿名对象作为实参传递给一个函数调用。 使用过后,该对象马上变为垃圾,准备被JAVA垃圾回收机制给回收掉 new Person().eat();16、信息的封装和隐藏 private关键字(私有的) 直接操作类中的属性会导致安全性的问题,暴露太多的细节给用户 通过方法操作属性,这是信息的封装 将数据声明为私有的,再提供(public)方法来实现对属性的操作 private 关键字,可以修饰类的成员,一经使用private,该属性将不能在外部进行直接访问。 故在类中提供public修饰的getter 以及 setter 来对private修饰的属性进行访问。17、构造器(构造方法)【构造器与类同名,且没有返回值,没有void】 构造器不是方法,没有返回值,也不能写void 构造器的定义 创建一个对象的时候,一定调用了该类中的某一个构造器 JVM 会为一个类提供一个默认的无参数的构造器 如果在类中没有显式的构造器,则调用JVM提供的默认的构造器 一旦类中显式定义了一个或多个构造器,则系统不再提供默认的构造器 构造器的作用 构造器中对属性进行初始化。 利用构造器提供的参数对类的成员属性进行初始化。 18、方法的重载 方法【函数】 方法的重载【一个类中存在多个同名的方法,参数列表必须不同】 根据传入的参数来区分调用的是哪个方法 不能依靠于参数名 能依靠参数列表 参数个数 参数类型【在个数相同的情况下,需要对比相同位置的参数类型】类代码: public class GetMax { public double max(double a,double b){ return a > b ? a:b; } //方法重载 public double max(double a,double b,double c){ double result= max(a,b); //三元运算符 return result > c ? result:c; } }测试代码: public class TestGetMax { public static void main(String[] args) { GetMax max = new GetMax(); System.out.println(max.max(3.0, 3.5)); System.out.println(max.max(3.5, 4.5, 2.0)); } }输出效果: 3.5 4.5 构造器的重载 public class Person{ private name; private age; //构造器 public Person(){ name = "EngineerZhong"; age = 20; } //构造器重载 //参数列表不相同或者是参数类型不相同 public Person(String name , int age){ this.name = name; this.age = age; } //参数个数相同,数据类型不相同的重载 public Person(String name,long age){ this.name = name; this.age = age; } }
更新时间:2016年9月11日
0 0
- JAVA温习课堂3
- JAVA温习课堂1
- JAVA温习课堂2
- JAVA温习课堂4
- JAVA温习课堂5
- JAVA温习课堂6
- JAVA温习课堂7
- JAVA温习课堂8
- JAVA温习课堂9
- JAVA温习课堂10
- JAVA温习课堂11
- JAVA温习课堂12
- JAVA温习课堂13
- JAVA温习课堂14
- Java基础温习 (3)
- java温习
- Java温习
- java 课堂笔记3
- ubantu 16.4 终端tab键命令不能补全的原因
- Solr6.0与Jetty、Tomcat在Win环境下搭建/部署
- GTK+学习笔记2——布局管理
- 微服务架构设计 第四步: 分析微服务架构依赖与风险; 开发微服务最关键的一步
- 按字节截取字符串
- JAVA温习课堂3
- Linux/Window下socket
- 进程间通信笔记(4)—SystemV 消息队列
- UNIX网络编程笔记 第七章 套接字选项
- 使用cairo绘制图形的部分函数总结
- objc runtime
- 设计模式
- Rsync
- Use snippets in vim