A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

一 :开发:其实就是找对象使用,没有对象就创建一个对象..
找对象--(建立对象)-使用对象-维护对象的关系

java语言的第一特性:封装
什么是封装?
public class User {
        private String nameId;
        private String passw;
        private String sex;
        private String date;
       
        public User() {
                super();
        }

        public User(String nameId, String passw, String sex, String date) {
                super();
                this.nameId = nameId;
                this.passw = passw;
                this.sex = sex;
                this.date = date;
        }

        public String getNameId() {
                return nameId;
        }

        public void setNameId(String nameId) {
                this.nameId = nameId;
        }

        public String getPassw() {
                return passw;
        }

        public void setPassw(String passw) {
                this.passw = passw;
        }

        public String getSex() {
                return sex;
        }

        public void setSex(String sex) {
                this.sex = sex;
        }

        public String getDate() {
                return date;
        }

        public void setDate(String date) {
                this.date = date;
        }

        @Override
        public String toString() {
                return "用户 [nameId=" + nameId + ", passw=" + passw + ", sex=" + sex
                                + ", date=" + date + "]";
        }
         
}

封装就是将变化隔离
封装后的代码便于使用
提高代码的复用性
提高了安全性
封装的原则:将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共的方法对其访问.
这个原则说的通俗一点:表现在程序中,就是把属性私有化,将方法公开化..

java语言的第二特性:继承
什么是继承?
public abstract class Animal {
        public String name;
        public int age;
        public Animal(){
                super();
        }
        public abstract void eat();
       
}




public class Dog extends Animal{
        public Dog(){
               
        }
        public Dog(String name,int age){
                this.name=name;
                this.age=age;
        }
        @Override
        public void eat(){
                System.out.println("狗吃骨头..");
        }
}

把多个类中相同的成员给提取出来定义到一个独立的类中.然后让这多个类和该独立的类产生一个关系.这多个类就具备了这些内容,这个关系叫继承.
子类继承父类,子类拥有父类的特性,同时子类拥有自己的个性..而且继承也是多态的前提. 所有类的基类都是Object.
继承的关键字是:extends
格式:
class 子类名 extends 父类名{}
继承的好处:提高了代码的复用性   提高了代码的维护性  让类与类产生了一个关系,是多态的前提
继承的弊端:让类的耦合性增强. 这样某个类的改变,就会影响其他的和该类相关的类.   打破了封装性
开发的原则:低耦合,高内聚
耦合:类与类的关系
内聚:自己完成某件事情的能力
java中继承的特点:java中类只支持单继承  java中可以多层(多重)继承
继承需要注意的事项:
子类不能继承父类的私有成员
子类不能继承父类的构造方法,但是可以通过surper去访问
不要为了部分功能而去继承
子类的构造方法默认回去访问父类的无参构造

java语言的第三特性:多态
什么是多态?
        public static void main(String[] args){
                Animal an=new Dog();       
                an.eat();
                Animal an=new Cat();
                an.eat();
               
        }

输出结果:
狗吃骨头...
猫吃鱼...

同一个对象在不同时刻体现出来的不同状态
父类的引用指向了自己的子类对象
父亲的引用也可以接受自己的子类对象
多态的前提:有继承或者实现关系
有方法重写
有父类或者父接口引用指向子类对象
多态可分为:具体类多态 抽象类多态 接口多态
多态的好处:提高了代码的维护性(继承体现)  提高了代码的扩展性(多态体现)
多态的弊端:父不能使用子类的特有功能
现象:子可以当做父使用,父不能当做子使用
多态中的转型:
向上转型:从子到父
向下转型:从父到子
注意:千万不要将父类对象转换成子类类型,多态自始至终都是子类对象在做着变化

java语言的第四特性:抽象
把多个共性的东西提取到一个类中,这是继承的做法
但是呢,这多个共性的东西,有些时候,方法签名一样,但是方法体不同
也就是说,方法声明一样,但是每个具体的对象的对象在具体实现的时候内容不一样
所以,我们在定义这些共性的方法的时候,就不能给出具体的方法体
而一个没有具体的方法体的方法就是抽象方法
在一个类中如果有抽象方法,该类必须定义为抽象类

抽象类的特点:
抽象类和抽象方法必须用关键字abstract修饰
抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类
抽象类不能实例化
抽象类的子类:1是一个抽象类 2是一个具体类,这个类必须重写抽象类中的所有抽象方法
关于抽象类的几个小总结:
抽象类有构造方法,但是不能被实例化,那么构造方法有什么用?
用于子类访问父类数据的初始化
一个类如果没有抽象方法,却定义为了抽象类,有什么用?
为了不让创建对象
abstract不能和哪些关键字共存?
final冲突
private 冲突
static 无意义

二: Override和Overload的区别:
方法重载:
方法的名称相同
不以返回值区分
参数的个数 类型 顺序其一不同即可
重写:
发生在子父类之间
要求方法签名一样(返回值类型 方法名和参数列表一样,子类的方法访问权限必须大于等于父类)


  三:new一个对象,都做了那些事情?
eg: Person p=new Person("张三",21);
1 因为new用到了Person.class,所以会先找到Person.class文件,并加载到内存中
2执行该类的static代码块,如果有的话,给Person.class进行初始化
3在堆内存中开辟空间,分配内存地址
4在堆内存中建立对象的特有属性,并进行默认初始化
5对属性进行显初始化
6对对象进行构造代码块初始化
7对对象进行构造函数初始化
8将内存地址赋给栈内存的p变量
创建对象完成...

评分

参与人数 1黑马币 +10 收起 理由
DAN66 + 10 赞一个!

查看全部评分

6 个回复

正序浏览
分析的很好啊
回复 使用道具 举报
感谢分享。。。
回复 使用道具 举报
君子无醉 来自手机 中级黑马 2015-7-8 09:32:41
板凳
紫夜灵魂 发表于 2015-7-7 19:41
阳阳?

嗯?什么
回复 使用道具 举报
学习了,总结的很全
回复 使用道具 举报
阳阳?:lol
回复 使用道具 举报
再次复习了一下,谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马