##面向对象
1—面向对象是一种思想.相对面向过程而言的,相对简单.
2–,万物皆对象
3–,面向对象的特征:
–封装性,把相关的数据封装成一个“类”组件
–继承性,是子类自动共享父类属性和方法,这是类之间的一种关系
–多态,增强软件的灵活性和重用性
类和对象的创建和使用

 //测试 类和对象//一个.java文件中,可以包含多个类.只不过,只能有一个类,被public修饰.//而且,被public修饰的类名就是.java文件名.public class Test6_Class {public static void main(String[] args) {//根据汽车类这个模板,创建一个汽车对象来干活//使用new关键字,创建对象//       new Car();//匿名对象Car c = new Car();//对象的名字叫BMW//使用模板里的方法c.run();c.back();//设置c对象的信息c.price = 10.9 ;c.peizhi = '高' ;c.color = "black";c.model = "X6";//使用模板里的属性/变量System.out.println( c.price );//0.0System.out.println( c.peizhi );//\u0000System.out.println( c.color );//nullSystem.out.println( c.model );//null}}//使用class关键字创建汽车类 ,用来描述汽车事物class Car{//描述事物的特征 -- 成员属性/实例变量/成员变量(在类里方法外)//型号,颜色,价格,配置double price ;//小数类型的默认值是0.0String color ;//引用类型的默认值是nullString model ;char peizhi ;//char类型的默认值是\u0000//描述事物的功能 -- 成员方法/成员函数//前进  后退public void run() {System.out.println("run()...");}public void back() {System.out.println("back()...");}}--2,分析手机事物:-- 属性:颜色,尺寸,品牌,价格。。。-- 行为:打电话,发短信,听音乐。。。。-- 测试://练习手机类public class Test1_Class {public static void main(String[] args) {//TODO 创建手机对象测试//new Phone().call();//匿名对象--只干一件事情Phone p = new Phone() ;//调用模板里的方法p.call();p.music();p.message();//设置p对象的具体信息p.color = "red" ;p.size = 5.7 ;p.pinpai = "HUAWEI" ;p.price = 5999.9 ;//调用模板里的属性System.out.println(  p.color  );//nullSystem.out.println(  p.size  );//0.0System.out.println(  p.pinpai  );//nullSystem.out.println(  p.price  );//0.0}}

–3,创建多个对象测试

     //练习手机类public class Test1_Class {public static void main(String[] args) {//创建手机对象测试new Phone().call();//匿名对象--只干一件事情new Phone().music();//匿名对象--只干一件事情Phone p = new Phone() ;//调用模板里的方法p.call();p.music();p.message();//设置p对象的具体信息p.color = "red" ;p.size = 5.7 ;p.pinpai = "HUAWEI" ;p.price = 5999.9 ;//调用模板里的属性System.out.println(  p.color  );System.out.println(  p.size  );System.out.println(  p.pinpai  );System.out.println(  p.price  );//TODO 创建p2 p3对象测试Phone p2 = new Phone() ;//调用模板里的方法p2.call();p2.music();p2.message();//设置p对象的具体信息p2.color = "white" ;p2.size = 6.3 ;p2.pinpai = "VIVO" ;p2.price = 3999.9 ;//调用模板里的属性System.out.println(  p2.color  );System.out.println(  p2.size  );System.out.println(  p2.pinpai  );System.out.println(  p2.price  );Phone p3 = p2 ;System.out.println(  p3.color  );System.out.println(  p3.size  );System.out.println(  p3.pinpai  );System.out.println(  p3.price  );}}

##封装
–1,通过private关键字实现封装,来提高程序的安全性.可以封装成员变量,也可以封装成员方法.被private修饰后,只能在本类中可见.
–2,练习1:封装学生类

 //测试封装public class Test2_Private {public static void main(String[] args) {// 创建Student对象测试Student s = new Student();s.coding();//s.chiji();//2,因为chiji()已经被封装了,外界无法使用!!//设置属性的值//      s.name="jack";//4,因为name已经被封装了,外界无法使用!!//        s.age=20 ;s.setName("jack");s.setAge(20);//获取属性的值//      System.out.println( s.name );//4,因为name已经被封装了,外界无法使用!!//        System.out.println( s.age );//0System.out.println( s.getName() );//jackSystem.out.println( s.getAge() );//      System.out.println( s.score );//0.0}}// 提供Student类class Student{//特征private String name ;//5,当属性被private后,外界就没法直接获取或者设置了!!--提供公共的访问方式//提供公共的设置方式 setXxx()public void setName(String n){//拿到你提供的n的值,给name属性赋值name = n ;}//提供公共的获取方式 getXxx()public String getName(){return name;//把name属性的值,返回给外界的调用位置}//TODO  封装private int age ;public void setAge(int a) {age = a;}public int getAge(){return age ;}//自动-右键-source-generate getters and setters-select all-okprivate double score ;public double getScore() {return score;}public void setScore(double score) {this.score = score;}//TODO 封装private String addr ;private long id ;public String getAddr() {return addr;}public void setAddr(String addr) {this.addr = addr;}public long getId() {return id;}public void setId(long id) {this.id = id;}//行为public void coding() {//3,  在类里, 提供间接的访问方式chiji();System.out.println("coding()...");}//1,通过private关键字,实现封装.只能在本类中访问private void chiji() {System.out.println("chiji()...");}}

构造方法
–1,用来创建对象 或者 完成对象的初始化.
–2,构造方法可以重载(方法名相同,参数列表不同)
–语法: 修饰符 类名([参数列表]) { 方法体 }
–3,练习1:构造方法创建对象

 //测试 构造方法//总结//1, 构造方法的语法: 修饰符 类名(参数列表){}//2, 构造方法的触发时间节点: 创建对象/new/实例化//3, 构造方法可以重载,目的是为了,方便外界比较灵活的创建对象public class Test3_Constructor {public static void main(String[] args) {//1,创建Teacher对象 Teacher t = new Teacher();//触发无参构造方法//4,创建Teacher对象 -- 触发含参构造方法Teacher t2 = new Teacher("李铁蛋");//触发String类型的含参构造Teacher t3 = new Teacher(39);//触发int类型的含参构造Teacher t4 = new Teacher("李铁蛋",39);//触发String和int的含参构造}}//提供Teacher类//构造方法语法:  修饰符 类名([参数列表]){ 方法体 }class Teacher{//2, 无参构造方法  默认就存在 ---前提是:不要只提供含参构造,否则就真没了!!public Teacher() {System.out.println(123);}//3, 含参构造方法 的重载 -- 方法名相同但是参数列表不同!!public Teacher(String name) {System.out.println("老师叫:"+name);}//重载的构造方法public Teacher(int age) {System.out.println("老师"+age+"岁.");}//TODO 重载的构造方法public Teacher(String name,int age){System.out.println("老师叫:"+name+",今年:"+age+"岁.");}}--4,练习2:构造方法赋值//测试 构造方法//总结//1, 构造方法的语法: 修饰符 类名(参数列表){}//2, 构造方法的触发时间节点: 创建对象/new/实例化//3, 构造方法可以重载,目的是为了,方便外界比较灵活的创建对象public class Test3_Constructor {public static void main(String[] args) {//1,创建Teacher对象 Teacher t = new Teacher();//触发无参构造方法//4,创建Teacher对象 -- 触发含参构造方法Teacher t2 = new Teacher("王二狗");//触发String类型的含参构造Teacher t3 = new Teacher(39);//触发int类型的含参构造Teacher t4 = new Teacher("王二狗",39);//触发String和int的含参构造}}//提供Teacher类//构造方法语法:  修饰符 类名([参数列表]){ 方法体 }class Teacher{String name ;//2, 无参构造方法  默认就存在 ---前提是:不要只提供含参构造,否则就真没了!!public Teacher() {System.out.println(123);}//3, 含参构造方法 的重载 -- 方法名相同但是参数列表不同!!public Teacher(String n) {name = n ; // ----------!!!构造方法还可以给成员变量赋值!!!---------System.out.println("老师叫:"+n);}//重载的构造方法public Teacher(int age) {System.out.println("老师"+age+"岁.");}//重载的构造方法public Teacher(String name,int age){System.out.println("老师叫:"+name+",今年:"+age+"岁.");}}

JAVA学习记录day07相关推荐

  1. java多线程阶乘_【java学习记录】11.用多线程实现阶乘的计算过程和结果的读取(thread类ReadThread )...

    (源码在上传的压缩包"[java学习记录]11.多线程实现阶乘计算(Thread类和Runnable接口)"中可看到,该压缩包可下载)java * 采用Thread类的子类实现线程 ...

  2. java学习记录十五:集合二Collections、Set、Map

    java学习记录十五:集合二 一.Collections工具类 一.解释 二.常用方法 1.打乱集合顺序 2.按照默认规则排序 3.按指定规则排序 4.批量添加元素 二.可变参数 一.解释 二.写法 ...

  3. Java学习记录五(多线程、网络编程、Lambda表达式和接口组成更新)

    Java学习记录五(多线程.网络编程.Lambda表达式和接口组成更新) Java 25.多线程 25.1实现多线程 25.1.1进程 25.1.2线程 25.1.3多线程的实现 25.1.4设置和获 ...

  4. java学习记录16-反射

    java学习记录 一.什么叫反射? 二.测试class类的创建方式有哪些 三.类加载内存分析 加载->链接->初始化 四.分析类的初始化 五.获得类的信息 六.动态的创建对象,通过反射 七 ...

  5. Java学习记录02

    Java学习记录02 在学习中,博客的书写不可缺少,相应的markdown基本语法也要掌握,下面是自己在CSDN上查找并学习的链接:Markdown语法 2.6项目实训:基于控制台设计简易打折与累加计 ...

  6. java学习笔记day07 成员变量与局部变量、形式参数、匿名对象、封装、private、this、构造方法、类详细讲解、static

    java学习笔记day07 1.成员变量和局部变量的区别 定义变量的注意事项 2.形式参数⭐ [P175] 形参是个类名,要的其实是一个对象 3.匿名对象(了解即可) 4.封装 class Stude ...

  7. Java学习记录_1:MOOC《零基础学Java语言》课后习题解

    Hey,我是寒水,一名大二学生,电子商务专业在读,正在学习Java中.我试图将在Java学习中遇到的一些困惑和最终的解答发在这个账号上,希望以此来激励我不要放弃学习! 在学习记录这个专题中,我收藏一些 ...

  8. Java学习记录之简单的图书管理系统(完善中)

    电子书管理系统 功能划分 最核心的功能 提供图书管理的服务 添加图书 查询 检索所有的图书 按已知检索图书信息 图书的删除 图书信息的更新 用户 用户的类型 管理员:图书的添加.更新.删除操作 普通用 ...

  9. Java学习记录(Day4)

    学习Java第四天 单例模式 三元素: 构造结构私有化 静态属性指向实例 public static的 getInstance方法,返回第二步的静态属性 饿汉式单例模式 GiantDragon 应该只 ...

最新文章

  1. [UE4蓝图教程]蓝图入门之变量使用
  2. 数据结构: 排序算法介绍
  3. linux 安装qt 4.6软件,QT学习之一:Linux下安装QT之版本qt-4.6.3
  4. 大规模机器学习在LinkedIn预测模型中的应用实践
  5. 3月3日发布!realme V25正式官宣:超大内存的国潮手机
  6. 计算机竞赛满分学霸,湖北学霸斩获信息学奥赛金牌 将直接保送清华大学 立志做一名计算机科学家...
  7. azure 安全组_具有安全性和设计注意事项的Azure成本跟踪
  8. Web性能测试篇:AB 压力测试
  9. 【个人笔记】OpenCV4 C++ 快速入门 05课
  10. 问题1:VS2017:找不到 Windows SDK 版本10.0.17134.0
  11. 计算机应用基础word的课件,计算机应用基础之word2010课件
  12. 国际C语言混乱代码大赛(IOCCC)1988年获奖作品
  13. 幸运九宫格抽奖系统带后台源码
  14. java毕业生设计校园租赁系统的设计与实现计算机源码+系统+mysql+调试部署+lw
  15. 怎么修改图片尺寸大小?电脑上怎么图片改大小?
  16. 程序员博客 - 加分项
  17. Win10 - 彻底禁用Cortana的方法
  18. vc.60写c语言,悟空问答如何用VC60编写简单的APP
  19. 进入微信企业项目授权回跳之后退出项目需要点击两次(手机的返回主键,回退键)才能正常退出的问题解决
  20. 排球计分规则3.17

热门文章

  1. 抖音上坤之大强之作是什么意思
  2. 【LeetCode】86. 分隔链表
  3. [MAUI 项目实战] 音乐播放器(一):概述与架构
  4. 绘画入门经典教程——如果你想, 一切皆有可能!
  5. 【python】调用百度智能云API实现手写文字识别
  6. IOS开发百度地图API
  7. hadoop Error: JAVA_HOME is incorrectly set.Please update C:\hadoop-3.0.0\etc\hadoop\hadoop-env.cmd
  8. spark出现crossJoin笛卡尔积报错异常解决use the CROSS JOIN syntax to allow cartesian products between these
  9. 图的创建以及遍历(邻接矩阵法存储图)
  10. 达人评测 红米K30s至尊纪念版和iQOO Neo5活力版