鱼C论坛

 找回密码
 立即注册
查看: 4983|回复: 5

[学习笔记] JAVA学习Day7【面对对象1】

[复制链接]
发表于 2020-8-17 16:17:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 糖逗 于 2020-8-17 16:26 编辑

学习视频:https://www.bilibili.com/video/BV17J411G72L?p=20

125-142

  1. /*
  2. *面向对象思想  JAVA语言 程序的最小单位是类
  3. *把复杂的业务逻辑/功能中先抽取出“类”,然后再考虑这个类中包含什么属性和方法
  4. *面向对象是把数据和功能(行为)合起来的。关注怎么做
  5. *面向过程思想 C语言 程序的最小单位是函数
  6. *把大的功能分解成一个一个小的功能
  7. *面向过程是把数据与功能是分开的。关注谁做
  8. */



  9. /*
  10. *类:一类具有相同特征的事务的抽象描述
  11. *类和对象的关系:类是众多对象的抽象描述,类是对象的设计图,创建对象的模板
  12. *对象是类的个体,具体的实例
  13. */


  14. /*
  15. *类的提取:名词提取,转换成现实世界中的事物的类别
  16. *类的设计:类的成员设计 1.属性(数据特征)2.方法:行为特征,功能特征
  17. *3.构造器:创建对象时用 4.代码块:在类的初始化和对象初始化时用
  18. *5.内部类:在某个大的事物中,包含了一个独立的小的事物的类别,而且一般这个小的事物类别只为大的事物服务时
  19. */


  20. class Body{
  21.         //属性
  22.         double weight;
  23.         char gender;
  24.         //方法
  25.         void eat(){
  26.                 System.out.println("吃饭");
  27.         }
  28.         void sleep(){
  29.                 System.out.println("睡觉");
  30.         }
  31.         //构造器
  32.         Body(){

  33.         }
  34.         Body(double weight, char gender){
  35.                 this.weight = weight;
  36.                 this.gender = gender;
  37.         }
  38.         //代码块
  39.         {
  40.                 System.out.println("非静态代码块");
  41.         }
  42.         static{
  43.                 System.out.println("静态代码块");
  44.         }
  45.         //内部类
  46.         class Heart{
  47.                 public void beat(){
  48.                         System.out.println("砰砰跳");
  49.                 }
  50.         }

  51. }

  52. /*
  53. *1.类的声明:
  54. *【修饰符】 class 类名{
  55. *       
  56. *}
  57. *如果一个类是public,那么源文件名必须与类名相同!!!!!
  58. *2.类的第一类成员:属性
  59. *(1)属性的声明 【修饰符】 数据类型 属性名;
  60. * (2)类名每个单词的首字母大写(命名规则)
  61. *(3)对象名/变量名:从第二个单词开始首字母大写
  62. */
  63. //声明类
  64. public class java07{
  65.         public static void main(String[] args){
  66.                 //创建对象
  67.                 Person p = new Person();
  68.                 //为p对象的属性赋值
  69.                 p.name = "张三";
  70.                 p.age = 23;
  71.                 p.gender = '男';
  72.                 //访问某个对象的属性
  73.                 System.out.println(p.gender);

  74.         }
  75. }
  76. //声明类
  77. class Person{
  78.         //属性列表
  79.         String name;
  80.         int age;
  81.         char gender;

  82. }


  83. /*
  84. *属性的特点:
  85. *1.有默认值,原则和数组元素的默认值一样
  86. *(1)基本数据类型:
  87. *byte short int long : 0
  88. *float double : 0.0
  89. *boolean : false
  90. *char : \u0000
  91. *(2)引用数据类型:null
  92. *例如:String等
  93. *2.每一个对象的属性值是独立的
  94. */
  95. class test07_01{
  96.         public static void main(String[] args){
  97.                 //创建一个动物的对象
  98.                 Animal al = new Animal();
  99.                 //

  100.         }
  101. }

  102. class Animal{
  103.         String name;
  104.         int legs;
  105. }


  106. /*
  107. *类的成员之二:方法
  108. *方法(method)又称为函数(function)
  109. *方法是代表一个独立的可复用的功能
  110. *声明方法的好处:
  111. *(1)代码的复用
  112. *(2)简化代码量
  113. *1.声明一个方法
  114. *【修饰符】 返回值的类型 方法名(形参列表){
  115. *        方法体:实现代码的功能
  116. *}
  117. *2.调用方法
  118. *3.命名规范:和变量名一样,胸第二个单词开始首字母大写
  119. */

  120. class test07_02{
  121.         public static void main(String[] args){
  122.                 printRectangle();

  123.         }
  124.         //public static 是修饰符
  125.         //void 是返回类型,它是一种特殊的返回值类型,表示无返回
  126.         public static void printRectangle(){
  127.                 for(int i = 1; i <= 5; i ++){
  128.                         for(int j = 1; j <= 10; j++){
  129.                                 System.out.print("*" + " ");
  130.                         }
  131.                         System.out.println();
  132.                 }
  133.         }
  134. }


  135. /*
  136. *无参无返回值的方法
  137. *调用:(1)在本类中,同一个级别,直接调用
  138. *(2)在其他类中,需要通过对象名.方法来调用
  139. */

  140. class test07_03{
  141.         public static void main(String[] args){
  142.                 //创建对象
  143.                 Student s1 = new Student();
  144.                 s1.name = "小红";
  145.                 s1.age = 21;
  146.                 s1.score = 98;
  147.                 //通过对象去调用方法
  148.                 s1.printInfo();

  149.         }
  150. }
  151. class Student{
  152.         //属性
  153.         String name;
  154.         int age;
  155.         int score;
  156.         //方法
  157.         void printInfo(){
  158.                 System.out.println("姓名" + name + "年龄" + age);
  159.         }
  160. }


  161. /*
  162. *无参有返回值的方法
  163. *
  164. */

  165. class test07_04{
  166.         public static void main(String[] args){
  167.                 Account a1 = new Account();
  168.                 a1.balance = 10000;
  169.                 a1.printInfo();
  170.                 double d = a1.getMonthlyRate();
  171.                 System.out.println(d);

  172.         }
  173. }

  174. class Account{
  175.         String id;
  176.         double balance;
  177.         double rate = 0.035;

  178.         void printInfo(){
  179.                 System.out.println("账户" + id);
  180.         }

  181.         double getMonthlyRate(){
  182.                 return rate / 12;
  183.         }
  184. }


  185. /*
  186. *有参无返回值的方法
  187. *形参列表:声明时()中
  188. *实参列表:调用时()中
  189. */
  190. class test07_05{
  191.         public static void main(String[] args){
  192.                 GrahicTools tools = new GrahicTools();
  193.                 tools.printRectangle();
  194.                 tools.printRectangleN(4, 5);

  195.         }
  196. }

  197. class GrahicTools{
  198.         void printRectangle(){
  199.                 for(int i = 1; i <= 5; i ++){
  200.                         for(int j = 1; j <= 10; j++){
  201.                                 System.out.print("*" + " ");
  202.                         }
  203.                         System.out.println();
  204.                 }
  205.         }
  206.         void printRectangleN(int n, int m){
  207.                 for(int i = 1; i <= n; i ++){
  208.                         for(int j = 1; j <= m; j++){
  209.                                 System.out.print("*" + " ");
  210.                         }
  211.                         System.out.println();
  212.                 }
  213.         }
  214. }


  215. /*
  216. *有参有返回值的方法
  217. */
  218. class test07_06{
  219.         public static void main(String[] args){
  220.                 MyMathTools tools = new MyMathTools();

  221.                 int m = tools.max(4, 6);
  222.                 System.out.println(m);

  223.                 int n = tools.threeMax(5, 3, 2);
  224.                 System.out.println(n);
  225.         }
  226. }

  227. class MyMathTools{
  228.         int max(int a, int b){
  229.                 return a > b ? a : b;
  230.         }
  231.         int threeMax(int a, int b, int c){
  232.                 return max(max(a, b), c);
  233.         }
  234. }
复制代码

类的存储

类的存储

评分

参与人数 1荣誉 +3 鱼币 +2 贡献 +1 收起 理由
Draem + 3 + 2 + 1 鱼C有你更精彩^_^

查看全部评分

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-4-1 19:35:30 | 显示全部楼层
很不错,帮我巩固了知识点,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-2 09:22:32 | 显示全部楼层
好帖子,刚学面向对象有些头疼
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-2 12:31:57 | 显示全部楼层
25起步,35结束 发表于 2021-4-2 09:22
好帖子,刚学面向对象有些头疼

看B站上尚硅谷的JAVA课程很不错。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-2 14:57:54 | 显示全部楼层
糖逗 发表于 2021-4-2 12:31
看B站上尚硅谷的JAVA课程很不错。

好的谢谢,我去看一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-20 12:06:05 | 显示全部楼层
糖逗 发表于 2021-4-2 12:31
看B站上尚硅谷的JAVA课程很不错。

黑马的如何?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-10 00:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表