@学习记录

开始学习Java

遵从同学的指导,从Java se开始学习

黑马的JavaSE零基础入门

day06-01 面向对象

package day06;import java.util.Arrays;/*
面向过程,当需要实现一个功能的时候,详细处理每一个细节,强调过程
面向对象,当需要实现一个功能的时候,借助已有功能实现,强调对象面向对象的三大基本特征:封装,继承和多态*/
public class Demo01 {public static void main(String[] args) {int[] array = {10, 20, 30, 40, 50};// 要求打印格式为[10, 20, 30, 40, 50]// 面向过程System.out.print("[" );for (int i = 0; i < array.length; i++) {if (i == array.length - 1){System.out.println(array[i] + "]");} else {System.out.print(array[i] + ", ");}}System.out.println("===============================");// 面向对象// 找一个JDK提供的Arrays类// 其中,有一个toString方法,直接能把数组变成想要的格式的字符串System.out.println(Arrays.toString(array));}
}

day06-04 类的定义

package day06;/*
面向过程,当需要实现一个功能的时候,详细处理每一个细节,强调过程
面向对象,当需要实现一个功能的时候,借助已有功能实现,强调对象面向对象的三大基本特征:封装,继承和多态定义一个类,模拟“学生”事务,其中有两个组成部分:
属性(是什么):姓名年龄
行为(能做什么):吃饭睡觉学习对应到Java的类中:
成员变量(属性):String name;int age;
成员方法(行为): // 没有static关键字public void eat()public void sleep()public void study()注意事项:
1.成员变量是直接定义在类中的,在方法外边
2.成员方法不要写static关键字
*/public class Student {// 成员变量,变量直接写在类中String name;int age;// 成员方法public void eat() {System.out.println("吃饭!");}public void sleep() {System.out.println("睡觉!");}public void study() {System.out.println("学习!");}
}

day06-05 对象的创建及其使用

package day06;/*
通常情况下,一个类不能直接使用,需要根据类创建一个对象,才能使用。
1.导包:指出需要使用的类在哪个位置
import 包名称.类名称;
import day06.Student;
对于和当前类属于同一个包的情况,可以省略导包语句不写2.创建
类名称 对象名 = new 类名称();
Student stu = new Student();3.使用
使用成员变量:对象名.成员变量名
使用成员方法:对象名.成员方法名(参数)注意事项:
如果成员变量没有进行赋值,那么将会有一个默认值*/
public class Demo02 {public static void main(String[] args) {// 1. 导包// 位于同一类,可以省略不写// 2. 创建Student stu = new Student();// 3.使用System.out.println(stu.name); // 默认值nullSystem.out.println(stu.age); // 默认值0System.out.println("==================================");// 改变对象当中成员变量的数值内容stu.name = "胡歌";stu.age = 18;System.out.println(stu.name);System.out.println(stu.age);System.out.println("==================================");// 使用成员对象的方法stu.eat();stu.sleep();stu.study();System.out.println("==================================");}
}

day06-06 手机类练习,使用对象类型作为方法的参数和返回值

package day06;/*
新建手机的类
成员变量:品牌,价格,颜色
成员方法:打电话,发短信*/public class Phone {// 成员变量String brand;int price;String color;// 成员方法public void call(String who) {System.out.println("给" + who + "打电话!");}public void text() {System.out.println("发短信!");}}
package day06;public class Demo02Phone {public static void main(String[] args) {// 1. 导包// 2. 创建Phone one = new Phone();System.out.println(one.brand);System.out.println(one.price);System.out.println(one.color);System.out.println("======================");one.brand = "苹果";one.price = 8888;one.color = "黑色";System.out.println(one.brand);System.out.println(one.price);System.out.println(one.color);System.out.println("======================");one.call("家里人");one.text();System.out.println("======================");Phone phone2 = new Phone();System.out.println(phone2.brand);System.out.println(phone2.price);System.out.println(phone2.color);System.out.println("======================");phone2.brand = "三星";phone2.price = 6666;phone2.color = "蓝色";System.out.println(phone2.brand);System.out.println(phone2.price);System.out.println(phone2.color);System.out.println("======================");phone2.call("欧尼");phone2.text();System.out.println("======================");// 调用方法method()Phone two = new Phone();two.brand = "苹果";two.price = 8888;two.color = "黑色";method(two);System.out.println("======================");// 调用方法getPhone()Phone three = getPhone();System.out.println(three.brand);System.out.println(three.price);System.out.println(three.color);}// 使用对象类型作为方法的参数public static void method(Phone one){System.out.println(one.brand);System.out.println(one.price);System.out.println(one.color);}// 使用对象类型作为方法的返回值public static Phone getPhone(){Phone one = new Phone();one.brand = "苹果";one.price = 8888;one.color = "红色";return one;}
}

day06-12 成员变量和局部变量的区别

成员变量和局部变量的区别
1.定义的位置不一样【重点】
局部变量:在方法的内部
成员变量:在方法的外部,直接写在类当中

2.作用范围不一样【重点】
局部变量:只有方法中才可以使用
成员变量:整个类全部可以通用

3.默认值不一样【重点】
局部变量:没有默认值,如果要使用,必须手动进行赋值;
成员变量:如果没有赋值,会有默认值,规则和数组一样

4.内存的位置不一样(了解)
局部变量:位于栈内存
成员变量:位于堆内存

5.生命周期不一样(了解)
局部变量:随着方法进栈而诞生,随着方法出站而消失
成员变量:随着对象创建而诞生,随着对象被垃圾回收而消失

day06-14 面向对象之封装性

package day06;/*
面向对象的三大特征:;封装、继承、多态封装在java中的体现:
1.方法是一种封装
2.关键字private是一种封装封装就是将一些细节信息隐藏,外界不可见问题描述:定义person的年龄时,无法阻止不合理的数值设置
解决方案:用private关键字将需要保护的成员变量进行修饰。一旦使用了private进行修饰,那么本类中仍可以随意访问,但是超出了本类范围之外就不能再直接访问了。间接访问private成员变量,就是定义一对Getter(有参数无返回,参数类型与private的类型一致)/Setter(没有参数有返回值,返回值的类型与成员变量的类型对应)方法*/
public class Person {String name;private int age;public void show(){System.out.println("我叫" + name + ",年龄是" + age);}// 这个成员方法,专门用于向age设置数据public void setAge(int num){if (num <100 && num >= 0){age = num;}else {System.out.println("数据不合理");}}// 这个成员方法专门用于获取age的数据public int getAge(){return age;}
}
package day06;public class Demo03 {public static void main(String[] args) {Person person = new Person();person.show();person.name = "胡歌";
//        person.age = -20; // 直接访问private内容,错误写法!person.setAge(-20);person.show();}
}

day06-15 private关键字练习

package day06;/*
对于基本类型当中的boolean值,Getter一定要写成isXxxx的形式,而Setter规则不变*/public class Student02 {private String name;private int age;private boolean male;public void setName(String str){name = str;}public String getName(){return name;}public void setAge(int num){age = num;}public int getAge(){return age;}public void setMale(boolean b){male = b;}public boolean isMale(){return male;}}
package day06;public class Demo04 {public static void main(String[] args) {Student02 stu = new Student02();stu.setName("胡歌");stu.setAge(30);stu.setMale(true);System.out.println(stu.getName());System.out.println(stu.getAge());System.out.println(stu.isMale());}
}

day06-16 this关键字的作用

package day06;/*
当方法的局部变量和类的成员变量重名的时候,根据”就近原则“,有限使用局部变量
如果需要访问本类中的成员变量,需要使用格式:this.成员变量名"通过谁调用的方法,谁就是this "*/
public class Person02 {String name;// 参数who是对方的名字// 成员变量name是自己的名字public void sayHello(String name){System.out.println(name + "你好,我是" + this.name);}
}
package day06;public class Demo04 {public static void main(String[] args) {Person02 person = new Person02();person.name = "王健林";person.sayHello("王思聪");}
}

day06-17 构造方法

package day06;/*
构造方法是专门用来创建对象的方法,通过关键字new创建对象时,其实就是在调用构造方法。格式:
public 类名称(参数类型 参数名称){方法体
}注意事项:
1.构造方法的名称必须和所在的类名称完全一样,包括大小写
2.构造方法不要写返回值类型,连void都不写
3.构造方法不能return一个具体的返回值
4.如果没有编写任何构造方法,那么编译器会默认赠送一个构造方法,没有参数,方法体什么事情都不做
5.一旦编写了至少一个构造方法,那么编译器就不再赠送
6.构造方法也是可以进行重载的*/public class Student03 {// 成员变量String name;int age;// 无参数的构造方法public Student03(){System.out.println("构造方法成功!");}// 全参数的构造方法public Student03(String name, int age){this.name = name;this.age = age;}// Setter,Getterpublic void setName(String name){this.name = name;}public String getName(){return name;}public void setAge(int age){this.age = age;}public int getAge(){return age;}
}
package day06;public class Demo04 {public static void main(String[] args) {Student03 stu01 = new Student03(); // 无参数构造Student03 stu02 = new Student03("胡歌", 30); // 全参数构造System.out.println("姓名:" + stu02.getName() + ",年龄:" + stu02.getAge());// 如果需要改变对象当中成员变量数据内容,仍需要使用setXxxx方法stu02.setAge(31);System.out.println("姓名:" + stu02.getName() + ",年龄:" + stu02.getAge());}
}

day06-18 定义标准的类

package day06;/*
一个标准的类通常需要满足下面四个组成部分:
1.所有的成员变量都要使用private关键字修饰
2.为每一个成员变量编写一对Setter/Getter方法
3.编写一个无参数的构造方法
4.编写一个全参数的构造方法这样标准的类也叫做Java Bean*/
public class Student04 {private String name;private int age;// code generate(或alt+insert)自动生成代码public Student04() {}public Student04(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}
package day06;public class Demo04 {public static void main(String[] args) {Student04 stu03 = new Student04();stu03.setName("胡歌");stu03.setAge(32);System.out.println("姓名:" + stu03.getName() + ",年龄:" + stu03.getAge());System.out.println("=========================");Student04 stu04 = new Student04("胡歌",34);System.out.println("姓名:" + stu04.getName() + ",年龄:" + stu04.getAge());stu04.setAge(33);System.out.println("姓名:" + stu04.getName() + ",年龄:" + stu04.getAge());System.out.println("=========================");}
}

Java SE 学习记录06相关推荐

  1. Java SE 学习记录——进阶版11

    @学习记录 开始学习Java 遵从同学的指导,从Java se开始学习 黑马的JavaSE零基础入门[网络编程] 第一章 网络编程入门 1.1 软件结构 22-02 软件结构 1.2 网络通信协议 2 ...

  2. Java设计模式学习记录-解释器模式

    前言 这次介绍另一个行为模式,解释器模式,都说解释器模式用的少,其实只是我们在日常的开发中用的少,但是一些开源框架中还是能见到它的影子,例如:spring的spEL表达式在解析时就用到了解释器模式,以 ...

  3. 第一阶段Java SE学习概述

    Java SE学习概述 Java SE 学习分为五个阶段 第一部分:基础程序设计: 第二部分:面现象对象编程: 第三部分:Java SE 高级应用: 第四部分:JavaSE 新特性: 第五部分:MyS ...

  4. Java设计模式学习记录-单例模式

    前言 已经介绍和学习了两个创建型模式了,今天来学习一下另一个非常常见的创建型模式,单例模式. 单例模式也被称为单件模式(或单体模式),主要作用是控制某个类型的实例数量是一个,而且只有一个. 单例模式 ...

  5. 一个编程小白的Java SE学习日志 Ⅵ——继承【极客BOY-米奇】

    文章目录 前言(转载请说明作者!)3.25~3.29编写 自我问答 任务导引:电子宠物Beta 任务UML图 继承 什么是继承? 如何实现继承? 案例 子类可以继承父类所有的成员和方法? 继承的特点 ...

  6. Java SE 学习笔记5 Java阶段复习

    计算机.Java基础 一.计算机 1.硬件介绍 2.中央处理器 3.比特(bit)和字节(byte) 4.内存 5.存储设备 6.输入和输出设备 二.Java介绍 1.常用的dos命令 2.java语 ...

  7. Java注解学习记录(反射也能实现ButterKnife)

    文章目录 什么是注解(Annotation) 注解有什么用 注解怎么用 注解关键字 @interface 注解属性的数据类型 元注解 @Retention @Target @Documented @I ...

  8. JAVA SE学习笔记(七):终章:Java程序设计基础笔记(全10万字)

    Java程序设计入门 ​                                              copyright © 2020 by 宇智波Akali 目录 文章目录 第1章 J ...

  9. java之学习记录 5 - 1 - 模拟拉勾项目介绍与后台系统搭建

    项目架构(此文章只供个人学习的记录) 1 项目介绍 拉勾教育后台管理系统,是提供给拉勾教育的相关业务人员使用的一个后台管理系统, 业务人员可以在这个后台管理系统中,对课程信息.讲师信息. 学员信息等数 ...

最新文章

  1. leetcode day5 -- Reorder List Linked List Cycle II
  2. Android布局文件的布局方式
  3. 关于windows10用c++部署libtorch过程中遇到的一些问题
  4. el表达式遍历list中的list_EL表达式获取map和list集合中的值 | 学步园
  5. MFC的Main函数跑哪去了
  6. 基于matlab的pcm系统仿真_深入理解基于RISC-V ISS Spike的仿真系统:探索Spike,pk和fesrv...
  7. 树莓派3B+ Ubuntu mate16.04 开启热点
  8. 前端学成什么样就能找工作了?
  9. 4、Python-列表
  10. 任意数字大小写字母的随机数的产生
  11. C++ 调用 SWMM模型.swmm5.dll
  12. 基于微信小程序校内论坛系统设计与实现(毕业设计论文+数据库脚本+源码+答辩ppt)
  13. head first系列pdf下载
  14. 什么是通配符SSL证书?
  15. AD9854+STM32正弦波信号发生器
  16. 画出漂亮的神经网络图,神经网络可视化工具集锦
  17. python写的2048游戏,源代码,pygame
  18. python学习 复制图片并重命名
  19. PPT设计Tips总结
  20. 加入计算机网络协会申请书,协会申请书.doc

热门文章

  1. C/C++ 学习笔记:结构体中最后一个成员为[0]或[1]长度数组(柔性数组成员)的用法
  2. python workflow_如何用 Python 写 Alfred Workflow
  3. Android listview使用适配器时出现 Attempt to invoke virtual method xxxxxxxx on a null object reference问题解决方法
  4. 【MPI编程】矩阵向量乘法--解法三(子矩阵块分解)【高性能计算】
  5. Redis入门(七):Redis分布式锁(单机模式/集群模式)
  6. 00 后程序员就要为“你”加班?呵呵
  7. 计算机应用基础终极性,计算机应用基础z终结性考核(8页)-原创力文档
  8. 数据分析sql面试必会6题经典_数据分析师SQL面试必备50题
  9. 【UE4从零开始 083】体积光照贴图
  10. C#基础到入门(一篇就够了)