java实训第十天8/07

本文详细介绍了面向对象编程的基础概念和技术要点,包括继承、封装、多态等核心特性,并讲解了如何利用面向对象的方法来分析和解决问题。
面向对象重点
1.相关概念
a)面向对象的特性
继承
封装
多态
实现
b)方法的重载和重写(overload和override)
c)java中的多态分类
i)静态多态(编译时多态):方法重载
ii)动态多态(运行时多态):方法重写
d)在继承关系下构建子类对象的过程
public class A{

}

public class B extends A{

}

B b=new B();
加载类---->new 关键字--->调用 子类构造方法---->调用父类构造方法---->Object
---->构建Object对象---->给父类中成员变量赋值,再执行父类构造方法
---->给子类成员变量赋值,执行子类构造方法
2.使用面向对象分析解决问题
a)就是抽象的过程:把现实世界中的实体----抽象为java中类----通过 new 构建该类的对象
b)具体的步骤:
 i)找名词---实体--------抽象 为 java 中类
 ii)找修饰词:就是对实体的说明---------抽象为 类中属性:每一对象有属性的特有值
 iii)找动词: 就是实体完成的事情-----抽象为 类中 方法 :每一个对象的具体行为不同
  类中方法 在对象中激活
 iv)找动作的针对的对象:找方法的参数
 v)优化:提取父类,如果某些方法 必须在子类中重写,该方法就要转换为抽象方法
同时 该类要 变为抽象类
3.必须多练,多思考:能够方便的解决问题
数据库:select 

4.this和super
a)作为对象使用 
this  表示本类的一个对象
super 表示父类的对象引用
可以是 除了 static 修饰的内容以外的位置都可以使用
super 只能在子类中使用,调用父类中的属性和行为
b)作为构造方法是用
this() :表示访问本类中的空参数构造
super():表示访问父类中空参数构造
共同:都必须是构造方法的第一句,所以不能同时出现
不同:
this() 不能自己调用自己
super() 访问父类

5.java中的变量
a)局部变量:
i)方法的参数
ii)某个块中声明的变量,{}
iii)方法中声明的变量
{}中内容执行完毕 变量消失
b)成员变量:属性、全局变量
和对象相关,对象存在 成员变量就存在,对象销毁成员变量消失
c)被static修饰的成员变量,类变量,被该类下的所有成员共享
和类相关,类在内存中存在 该类变量就存在,直到 jvm 停止


6.内存类型
a)栈:快速读取区域:存放变量和基本类型
先进后出  类似 子弹夹  粮仓
b)堆:存放对象和数组 ,是 通过new 关键字创建
7.方法返回本类对象:


public class Student{

public void show(){}
public void print(){}
}
Student stu=new Student();
stu.show();
stu.print();


public class Student{

public Student show(){
//
return this;
}
public Student print(){

return this;
}
}
//链式操作
new Student().show().print();

8.构造方法:Constructor
a)概念:
i)和类名相同
ii)没有返回值
b)作用:
i)用于构建对象
ii)初始化属性值
c)特点:
i)和类名相同
ii)没有返回值
iii)可以通过 new 关键调用或者通过 this() 在其他构造方法中调用
或者 通过 super() 在子类构造方法中调用
iv)只能被重载,不能被重写
v)如果父类中没有空参数的构造方法,那么子类构造方法中必须通过super()的形式
指明对父类构造的引用


public class Person{
public Person(String name){

}
}
//看清楚 父类中是否有默认的空参构造
// 如果没有空参构造 那么子类构造方法中必须通过super 指明对父类构造的引用
public class Man extends Person{

public Man(){
super("");
}
}
9.测试:必须保证自己编写每一个类中的每一个方法正确误区
必须对自己编程的代码进行测试,而这些测试代码不需要发布,要方便管理
有以下原则:
a)test 测试代码必须放在名为 test 的 源文件夹中 
b)测试类与被测类 在相同的包结构中
c)测试类的名称 被测类名Test
d)junit
10.继承
a)继承的特点:
is a 的关系
b)继承的优点
c)子类继承父类后 执行过程
d)方法重写 
e)this 和 super
f)做题
11.java 中的包
a)使用包的意义:
i)可以区分不同功能的java 类 方便维护
ii)方便区分类,避免命名冲突
iii)通过包 结果 访问修饰符 可以实现信息隐藏
b)包如何定义
在 类的最上边 第一句话
package 父包.子包.子包;
不允许 创建类的时候使用默认包
c)常用的包:
java.lang;是java 基础包,不用引入 创建 java 类后默认就有了,使用即可
String
System
java.uitl:jdk提供工具类所在的包
Scanner
Arrays
java.sql: java操作数据库使用类和借口

java.text:java 格式化包
SimpleDateFormat
java.io: java 读写文件的包
java.net :网络

java.swing:桌面 窗口程序
d)自定义的包:
test:存放 测试代码的包
entity:存放于实体对应的类
view  :视图,用于产生界面
util  :自己编写的处理类
factory:存放创建对象的工厂

12.访问修饰符:
public  protected package private
a)都可以修饰属性和行为,不能修饰局部变量
private package(省略) protected   public
同一个类 可以 可以 可以 可以
同一个包不同类    否 可以 可以 可以
不同包中子类  否 可以 可以
不同包不是子类    否 可以

注意:
1.在子类中通过super关键字可以访问父类中某些修饰符修饰内容
2.子类和父类不在同一包中:
如果在子类中 通过 new 构建父类的对象 ,那么只能访问 public级别的内容
package test1;
public class Person{

protected String sex;
}
package test2;
public class Man extends Person{

public static void main(String[] args){
Person p=new Person();
p.sex="";//此处 错误,通过对象不能访问 不同包类中的非 public的内容
Man man=new Man();
m.sex="dd";//没有问题,man继承person后用于父类中属性和行为,
//protected 被继承

}
}
b)类的访问修饰符
public package

A  com.neu.test;
package com.neu.test;
class A{

}



=========去完成 老张开车去东北 编程


1)设置
2)编码


System.out.println("");


想:
int[] arr=new int[]{8,2,1,0,3};
int[] index=new int[]{2,0,3,2,4,0,1,3,2,3,3};
String tel="";
for(int i:index){
tel+=arr[i];
}


0 error 0 warning
























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值