面向对象01

    1 面向对象编程的思想来源生活,一切皆对象
           要描述这个世界上任何一个对象都可以通过静态属性(成员变量)和动态属性(方法/函数)描述。
     
     2 定义一个类等于定义一种新的数据类型。
     
     3 一个类就是一个具体对象实例模板。
     
     4 面向对象的三大特性
         1) 封装 对对象的成员进行访问限制
             封装的三个级别:
                  公开:public
                  受保护的:protected
                 私有的:private
              
         2) 继承
             一个类可以获得另外一个类中的成员属性和成员方法(秉承 is-A 关系)
             
             继承与被继承的概念:
                  - 被继承的类叫父类,也叫基类,也叫超类
                  - 用于继承的类,叫子类,也叫派生类
                  - 在Java中,任何类都有一个共同的父类叫object
   
         3) 多态
             同一个对象在不同情况下有不同的状态出现
             多态不是语法,是一种设计思想
             
             多态:同一事物的多种形态,动物氛围人类,狗类,猪类
             多态性:一种调用方式,不同的执行效果
             
 构造函数:
     在对象进行实例化的时候,系统自动调用的一个函数叫构造函数,通常用来对实例对象进行初始化
     构造函数名与 类 同名,且没有返回值
 
     当没有自定义构造函数时,系统会自动创建一个无参数的构造函数
     一旦 自定义 有参数的构造函数,系统将 不再 自动创建 无参数 构造函数
     开发中建议只要写 有参数 的构造函数都必须写 无参数 的构造函数
     
     get 方法 取出成员变量值   set 方法 给程成员变量赋值
     一旦成员变量拥有了 get和set就变成了属性

练习实例:

class  object{

    public static void main(String[] args) 
    {
        Person p1 = new Person();
        p1.setName("李XX");
        p1.setGender("女");
        Person p2 = new Person();
        p1.eat();
        //p1.name =  "dddd"不能这样给name赋值,因为name是私有的
        p2.sleep();

        Person p3 = new Person("张三","男",18);
        p3.out();

        Person p4 = new Person("李四","女",18);
        p4.out();

        System.out.println(p1.getName()+","+p1.getGender());
    }
}


class Person{
    private String name;  //一旦成员变量拥有了Set和get就变成了属性
    private String gender;
    private int age;
    
    public Person(){
        System.out.println("构造函数!");
    }

    public Person(String name,String gender,int age){
        //this指的是当前实例对象
        this.name = name;
        this.gender = gender;
        this.age = age;
    }


    //get(取出成员变量的值) 和set方法(给成员变量赋值)
    public void setName(String name){
        this.name = name;
    }
    public String getName(){
        return this.name;
    }

    public void setGender(String gender){
        this.gender = gender;
    }
    public String getGender(){
        return this.gender;
    }


    public void playGame(){
        System.out.println("打游戏!");
    }

    public void eat(){
        System.out.println("吃饭!");
    }

    public void sleep(){
        System.out.println("睡觉!");
    }

    public void out(){
        System.out.println(this.name+","+this.gender+","+this.age);
    }


Stirng类:
    1.java.lang包中的类不用引入包,直接使用

class bao{

    public static void main(String[] args){
        String info1 = "我是好人";
        String info2 = "我是坏人";
        //判断相等,要注意是地址相等还是内容相等
        //java对直接使用字符串类型做了优化,当两个类型相同时候,第二变量就不在开辟空间

        if(info1 == info2){ //是判断地址相等
            System.out.println("地址相等");
        }

        String data1 = new String("你是好人");
        String data2 = new String("你是坏人");

        if(data1 == data2){
            System.out.println("地址相等");
        }else{
            System.out.println("地址不相等");
            }
      }


    
    比较字符串内容相等    

if(data1.equals(data2)){
        System.out.println("内容相等");
    }else{
        System.out.println("内容不相等");
        }

正则表达式的练习(回顾知识)    

String data = "我爱我的祖国,她美丽又可爱";
    //取"国"     charAt(下标);
    System.out.println(data.charAt(5));    
    
    String eamil = "haoren@sina.com";
    if(email.matches("\\w+@\\w+.\\w+")){
        System.out.println("邮箱合法!");
    }else{
        System.out.println("邮箱不合法!");
    }
    //用户名规则:6 - 18  只能是数字/大小写字母/下划线_
    String username = "haoren123";
    if(username.    ("\\w{6,18}")){
        System.out.println("用户名合法!");
    }else{
        System.out.println("用户名不合法");
        }

    //电话号码:18582575786  第一位以1开头 11位
    String tel = "18582575786";
    if(tel.matches("^1\\d{10}")){
        System.out.println("电话合法!");
    }else{
        System.out.println("电话不合法!");
        }


    字符的分割        

String address = "www.baidu.com";

        String[] a = address.split{"[.]"};
        //"."在正则表达式中有其它意思,需用[]引起来,代表 字符
        System.out.println(a.length);
        for(String x:a){
            System.out.prinln(x);
        }


        
        路径统一
        

String path = "C:\ProgramData\Adobe\cmd.exe";
        //方法一:效率低
        String path1 = "C:"+File.separator+"ProgramData"+File.separator+"Adobe"+File.separator+"cmd";

        String[] p = path.split("\\\\");
        System.out.println(p.length);
        for(String c:p){
            System.out.println(c);
        }
        
        //方法二
        int path2 = lastIndexOf("\\");
        //System.out.println(path2);
        String temp = path2.substing(index+1);
        System.out.println(temp);

基础方法:
        
      

 //判断字符串的开头/结尾
        String a = "雷女士";
        System.out.println(a.startsWith("雷"));
        System.out.println(a.endsWith("女"));
        
        //String的效率问题
        String data1 = "雷";
        String data = data1 + "女士";
        //当开发中遇到反复拼串时,不使用String
        System.out.println(data);
        
        //反复拼串,应当使用StringBuffer
        StringBuffer lover = new StringBuffer("雷");
        System.out.println(lover);
        lover.append("女士");
        System.out.println(lover);

        //去掉空格 trim
        String username = "  佩奇";
        System.out.println(username);

        System.out.println(username.trim());

        //替换
        String lover2 = "雷女士你好";
        lover2.replace("雷女士","杨先生");
        System.out.println(lover2.replace("雷女士","杨先生");
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值