笔记内容——JAVA面向对象
一、思维导图
二、学习内容
package com.jsoft.morning; public class Ch02 { public static void main(String[] args) { //创建了一个Ch02这个类的对象 //根据图纸去造车 //创建对象的过程,类的实例化的过程,对象又叫做类的一个实例 //我们创建了一个Car类的对象car1 //这个car1就是对象的名 //其实这个car1就是个标识符 //对象名的命名规则:小驼峰 //创建对象的语法:类名 对象名 = new 类名(); Car car1 = new Car(); //给车的属性赋值 car1.brand = "奥迪"; car1.color = "白色"; car1.length = 5L; //取出属性的值 System.out.println("生产了第1台汽车,它的属性为:"+ car1.brand+car1.color+car1.length+"米"); Car car2 = new Car(); car2.brand = "丰田"; car2.color = "灰色"; car2.length = 4L; System.out.println("生产了第2台汽车,它的属性为:"+ car2.brand+car2.color+car2.length+"米"); /* car1和car2都是Car类的一个实例(对象) 但是他们之间是相互隔离的。 Car是类,只有一份 car1,car2......car100是根据类构建出来的【实例对象】,可以有很多个,而且他们可能都不一样。 */ } }
package com.jsoft.morning; import java.util.Scanner; public class Ch04 { public static void main(String[] args) { /* Scanner sc=new Scanner(System.in); String flag = sc.next();*/ Car car1 = new Car(); //对象.属性名 car1.brand = "大众"; car1.color = "黑色"; car1.length = 6L; //对象.方法名 //car1.run(95,"锦湖轮胎"); //有返回值的方法在执行后会得到一个具体的值,这个值是可以存下来的 boolean result = car1.run(95); System.out.println(result); } }
package com.jsoft.morning; /* 我们要造车,必须有一个图纸 根据图纸,可以造一百台车 这个图纸就是在描述车的具体信息,对车的信息进行封装 封装:1、代码层面 2、思想层面 如果把变量直接声明在类里:成员变量(全局变量) 如果把变量的声明在某个方法里(局部变量) 成员变量->属性 */ public class Car { //车的品牌 //只声明,不赋值 String brand; //车的颜色 String color; //车的长度 long length; public boolean run(int gasoline){ if (gasoline==92){ System.out.println("92号汽油跑的很快!"); return true; }else if (gasoline==95){ System.out.println("95号汽油跑的更猛"); return true; }else { System.out.println("你加了假油吧"); return false; } } }
package com.jsoft.afternoon; /* 成员方法 1、方法名不能重复 自己调自己-递归 递归的问题:StackOverflowError 栈溢出 内存溢出 开发中到底要不要用递归?如果用的话,要注意什么? */ public class Ch01 { //斐波那契数列 /* 我们知道除了0和1之外,第number个数字 等于第number-1个数和number-2个数的和 */ public int fibonacci(int number){ if (number==1||number==0){ return number; }else { return fibonacci(number-1)+fibonacci(number-2); } } public int factorial(int number){ //阶层 //循环的做法 /*int result=1; for (int i = 1; i <= number; i++) { result*=i; } return result;*/ if (number<=1){ return number; }else { return number*factorial(number-1); } } // public void run(){ // run(); // System.out.println("汽车启动了!"); // } //main方法 主方法 /* * 如果一个方法要调用一个非static的方法 * 就只能创建对象,使用对象。方法的形式调用 */ public static void main(String[] args) { Ch01 c=new Ch01(); // c.run(); // c.fibonacci(3); int i = c.factorial(5); System.out.println(i); } }
package com.jsoft.afternoon; /* 用一个方法,能够计算多个数相加 */ public class Ch04 { /* 用这一个方法可以实现之前我们写过的方法重载的功能 */ /*public int sum(int [] arr){ int result=0; if (arr.length<2){ result = arr[0]; }else { for (int i:arr){ result += i; } } return result; }*/ /*不定长参数 1、参数列表中,至多有一个不定长参数 2、不定长参数必须在最后位置 */ public int sum(String d,int ... arr){ int result=0; if (arr.length<2){ result = arr[0]; }else { for (int i:arr){ result += i; } } return result; } public static void main(String[] args) { Ch04 c = new Ch04(); // int [] arr = new int[]{1,2,34,4}; // System.out.println(c.sum(arr)); c.sum("2",2,2,3,42,3,5,2); System.out.println(c.sum("1",2,2,3,42,3,5,2)); } }
构造函数
package com.jsoft.afternoon.demo; import java.lang.invoke.CallSite; /* 类与类之间的关系 has a的关系 */ public class Person { String name; int gender; int age; //这个人有一个猫 Cat cat; public Person(String n,int g,int a,Cat c){//构造器可以传Cat name=n; gender=g; age=a; cat=c; } public void show(){ System.out.println("姓名"+name+"性别"+(gender == 1 ? "男":"女")+"年龄"+age+ "猫的信息"+cat.show()); } public void look(){ } } package com.jsoft.afternoon.demo; public class Cat { String variety; int age; String color; public Cat(String v,int a,String c){//三个参数构造器 variety=v; age=a; color=c; } public String show(){ return "品种:"+variety+"年龄:"+age+"颜色"+color; }} package com.jsoft.afternoon.demo; public class Demo { public static void main(String[] args) { Cat cat = new Cat("布偶",2,"黑白"); Person person = new Person("jim", 1,30,cat); person.show(); person.look(); } }
三、、笔记内容
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY