Core Java 第六章知识点总结——面向对象
知识点预览
对象的概念
类的概念
方法
方法的重载(Overloading)
构造方法
对象与引用
this关键字
对象的概念
1. 什么是对象(具体的定义状态(属性)和行为(方法)的一个实体)
一切客观存在的事物都是对象
2.对象的组成
属性 有什么(描述对象) 对象的属性也可以是对象
方法 能做什么(自己使用 别人使用)
3.计算机世界中的对象(连续的存储空间)
类的概念
1. 类是什么
具有相同行为和状态的对象的集合
a)类是对大量共性的抽象
b)类是客观事物在人脑中的主观反映
c)类是创建对象的模板
先有类,后有对象
class Student{
String name;//属性、实例变量、成员变量
int age;
}
2. 定义类、创建对象
a)创建对象 new Student();
b)定义一个变量存储创建的对象
Student s;
s = new Stuent();
可写在一起
Student s = new Stuent();
基本类型 8种
对象类型(引用):数组、对象、接口
3. 实例变量(类中的变量) 属于对象
a)访问 .
b)属性初始化
class Student{
String name = “suns”;
int age;
}
4. 实例变量(类)与局部变量(方法)的区别
局部变量
先赋值后使用
作用范围(从定义的代码块开始到定义的代码块结束)
命名不可冲突(同一作用范围内)
实例变量
可以不赋值就使用
a)实例变量存在默认值(各种各样的0)
b)实例变量至少在本类的范围内有效
c)实例变量可以和局部变量命名冲突,局部变量优先使用
方法
方法声明、方法实现
1. 格式
修饰符 返回值类型 方法名(参数1,参数2) [异常]{
方法体
}
方法的重载(Overloading)
1. 方法重载(Overloading) 同一个类中方法名相同、参数不同
2. 源码参考
class A{
//参数个数不同
void m(){}
void m(int a){}
void m(int a,int b){}
//参数类型不同
void m(String s){}
//参数类型相同但排列不同
void m(int a,String s){}
void m(String s,int a){}
//形参名字不同 不算重载
void m(int a){}
void m(int b){}
}
3. 方法重载的意义
对方法的调用者屏蔽因方法参数不同所造成的差异
构造方法
特殊性:定义语法 作用
1.构造方法的概念
publicStudent(){
}
a)没有返回值类型(和没有返回值void不同)
b)方法名同类名一致
c)用在对象的创建 构造对象
2.构造方法的重载
3.构造方法的特点
a)构造方法不能手工调用,被JVM自动调用
Student s = new Student();//告诉虚拟机
s.Student();
b)构造方法在对象构造时,被自动调用一次,而且只会被调用一次
i.分配空间
ii.初始化属性
iii.调用构造方法
c)构造方法没有返回值
d)如果一个类中没有定义构造方法,系统默认提供一个公开的、无参的空构造方法
4. 构造方法的使用场景
构造方法经常用于给实例变量赋值
对象与引用
1.引用概念
Student s;
s = new Student();
2.引用存储的是对象内存空间的首地址
s.print();//遥控器与电视机的关系
s指向首地址
3. 程序中的值传递
简单类型存储值(在内存中)
对象类型存储地址
//TestValue1.java
package chp6.ex08;
/**
*
* 说明:本程序演示了值传递 结果为10 基本类型 内存中存的是值
*/
public class TestValue1 {
public static void main(String args[]){
int a = 10;
int b = a;
b++;
System.out.println(a);
}
}
//答案:10
//TestValue2.java
package chp6.ex09;
/**
*
* 说明:本程序演示了值传递 结果为21 对象类型 内存中存储的是地址
*/
public class TestValue2 {
public static void main(String args[]){
Student s1 = new Student();
Student s2 = s1;//s2和s1指向的是同一地址
s2.age = 21;
System.out.println(s1.age);
}
}
class Student{
int age = 20;
}
//答案:21
//TestValue3.java
package chp6.ex10;
/**
*
* 说明:本程序演示了方法中的值传递 结果为10 基本类型 内存中存的是值
*/
public class TestValue3 {
public static void main(String args[]){
int a = 10;
m1(a);
System.out.println(a);
}
public static void m1(int a){
a ++;
}
}
//答案:10
//TestValue4.java
package chp6.ex11;
/**
*
* 说明:本程序演示了的方法中的值传递 结果为21 对象类型 内存中存储的是地址
*/
public class TestValue4 {
public static void main(String args[]){
Student s = new Student();
m2(s);
System.out.println(s.age);
}
public static void m2(Student stu){
stu.age++;
}
}
class Student{
int age = 20;
}
//答案:21
this关键字
1. this关键字的概念
this是一种特殊的引用,指向当前对象
2. this的作用
a)如果方法局部变量与实例变量命名冲突时,可以通过this属性的方式区分实例变量和局部变量
b)如果发生一个构造方法中需要调用另一个构造方法,可以通过this()的方法调用,但this()必须书写在第一行
String类
1. 创建一个字符串对象
String s = “suns”;
String s = newString(“suns”);
2.字符串值的判断equals方法
String s1 = newString(“suns”);
String s2 = newString(“suns”);
System.out.println(s1== s2);//false ==
判断引用
System.out.println(s1.equals(s2));//true equas判断内容
3.串池(””创建的字符串独立存储在内存的串池空间中)
String s1 = “suns”;
String s2 = “suns”
System.out.println(s1== s2);//true
4.String类中的常用方法
booleanequals();
char charAt(intpos);
int length();//方法 数组length为属性
String[]split();
booleanstartWith(String s);
trim();
StringsubString(int begin,int end);
//”suns”.subString(0,2);su
5.字符串的连接
//不好过多侵占内存空间
String s1 = “sun”;
String s2 = “shuai”
String s2 = s1 +s2;
//推荐使用不会开辟新空间
StringBuffer sb= new StringBuffer();
sb.append(“sun”);
sb.append(“shuai);
System.out.println(sb);
分享到:
相关推荐
Oracle工作总结——日志文件切换频率的调整 Oracle工作总结——日志文件切换频率的调整
oracle培训教材——备份与恢复以及常用命令 把oracle数据库从我的电脑上迁移到机房的电脑上,一开始采用dmp/imp方式,但是发现需要导出很多用户,太麻烦。所以决定采用冷备份/冷恢复的方式。
oracle内部培训资料——游标 实例代码,使用注意事项等
Oracle SOA 套件——Oracle BPEL 流程管理器Oracle SOA 套件——Oracle BPEL 流程管理器
Oracle学习笔记——day01 学习的好东西Oracle学习笔记——day01
Oracle学习笔记——day02 学习的好东西 Oracle学习笔记——day02
Oracle学习笔记——day04 学习的好东西 Oracle学习笔记——day04
Oracle学习笔记——day05 学习的好东西 Oracle学习笔记——day05
Oracle学习笔记——day03 学习的好东西 Oracle学习笔记——day03
Oracle10g 培训——基础知识,适合初学者了解,
Oracle数据库教程——nbu恢复oracle数据库案例
oracle系统培训课件——资料包(7个ppt).rar
oracle 面向对象 面向对象的oracle oracle面向对象oracle 面向对象 面向对象的oracle oracle面向对象oracle 面向对象 面向对象的oracle oracle面向对象oracle 面向对象 面向对象的oracle oracle面向对象oracle 面向...
Oracle数据库技术——动态SQL。详细资料~
很好的oracle 10培训资料——管理第二部分:管理实例
Oracle数据库教程——oracle常见的等待事件说明[参照].pdf
Oracle应用项目——使用OracleEM创建表空间.pdf 学习资料 复习资料 教学资源
Oracle数据库管理员培训教材——10g版本,学习初学oracle,oracle进阶等有很好的帮助,就是好!
Oracle工作总结——日志文件切换频率的调整.doc
java的优势? 1:跨平台(平台:指的是操作系统) 常见的操作系统:Windows Unix Linux Solaris(Sun) 跨平台:用java开发出来的应用程序不受底层操作系统的限制 底层的功臣:JVM = java虚拟机 = 1 + 2 + 3 = ...