Day03

Day03

键盘录入有三种方式
        1)早期的 main(String[] args) 
            String[]:字符串数组
            args:形式参数名
            
         弊端:只能接收字符串
            
        javac Demo.java        ---- >Demo.class
        java Demo hello world java
        
        
        2)方式2:JD5以后使用的:Scanner:文本扫描器
            导包:import java.util.Scanner;
            
        3)第三种方式:利用的BufferedReader:字符缓冲输入流    (IO流部分)
                    功能:readLine() :读取一行内容
                java.io.BufferedReader;

class Demo{
	public static void main(String[] args){
		 System.out.println(args.length) ;
		 for(int x = 0 ; x < args.length ; x ++){
			System.out.println(args[x]) ;
		 }
		
	}
}

方法的形式参数传递:
        1)基本数据类型作为参数传递:四类八种
        
                    形式参数的改变不影响实际参数!
        
        2)引用类型作为参数传递:数组,类,接口
        
                 形式参数改变会直接影响实际参数(String除外,它作为参数传递和基本类型作为参数传递效果一致!)
                                                String特点:字符串是常量

class ArgsDemo{
	public static void main(String[] args){
		//定义两个变量a,b
		int a = 10 ;
		int b = 20 ;
		
		System.out.println("a:"+a+",b:"+b) ;//10,20
		
		change(a,b) ;
		
		System.out.println("a:"+a+",b:"+b) ;//10,20
		
		System.out.println("---------------------------") ;
		
		//创建一个数组,静态初始化
		int[] arr = {1,2,3,4,5} ;
		System.out.println(arr[3]) ; //4
		change(arr) ;
		System.out.println(arr[3]) ; //8
		
		System.out.println("---------------------------") ;
		
		//String作为引用类型(特殊的引用类型)作为参数传递
		String s = "hello" ;
		System.out.println(s) ;
		change(s) ;
		System.out.println(s) ;
		
	}
	
	public static void change(String s){
		System.out.println(s) ;
		s += "gaoyuanyuan" ;
		System.out.println(s)  ;
	}
	
	//重载的change方法
	public static void change(int[] arr){
		//遍历数组
		for(int x = 0 ; x < arr.length ; x ++){
			if(arr[x] % 2 ==0){
				arr[x] *= 2 ;
			}
		}
	}
	
	
	public static void change(int a,int b){
		System.out.println("a:"+a+",b:"+b) ;//10,20
		a = b ; // a = 20 
		b = a + b ; // b = 20 + 20 = 40 
		System.out.println("a:"+a+",b:"+b) ;//20,40
	}
	
}

运行结果:

a:10,b:20
a:10,b:20
a:20,b:40
a:10,b:20
---------------------------
4
8
---------------------------
hello
hello
hellogaoyuanyuan
hello


    需求:
        有一个手机事物,它有 品牌,价格,颜色的属性
        手机可以打电话,发短信,玩游戏等行为!
    
使用面向对象的编程方式:去定义一个手机类,然后在PhoneTest类中进行测试
    
        手机事物:
                属性:品牌,价格,颜色
                行为:打电话,发短信,玩游戏
                
        定义一个Phone类
                成员变量:品牌(brand),价格(price),颜色(phoneColor)
                成员方法:callPhone(String name),sendMsg(),playGame()

class Phone{
	//成员变量
	String brand ;	 	//品牌
	int price ;			//价格
	String phoneColor ; //手机颜色
	String phoneDesc ;//手机描述信息
	
	//成员方法
	public String callPhone(String name){
		return "给"+name+"可以打电话" ;
	} 
	public void sendMsg(){
		System.out.println("手机可以发短信...") ;
	}
	
	public void playGame(){
		System.out.println("手机可以玩游戏...") ;
	}
	
}



//手机类的测试类
class PhoneTest{
	public static void main(String[] args){
		//创建Phone类对象
		//类名 对象名 = new 类名() ;
		Phone p = new Phone() ;
		System.out.println(p) ;//Phone@6d06d69c 地址值
		System.out.println(p.brand+"---"+p.price+"---"+p.phoneColor+"---"+p.phoneDesc) ;
		System.out.println("-------------------------------") ;
		
		//给成员变量赋值
		p.brand = "华为mate30pro" ;
		p.price = 6799 ;
		p.phoneColor = "翡翠绿" ;
		p.phoneDesc = "为拍照而生,天空之境!" ;
		
		System.out.println(p.brand+"---"+p.price+"---"+p.phoneColor+"---"+p.phoneDesc) ;
	
		//调用方法
		String s = p.callPhone("高圆圆") ;
		System.out.println(s) ;
		p.sendMsg() ;
		p.playGame() ;
		
	}
}

类和对象:
            类:一组事物的属性和行为的集合!                学生类 Student
                    对应的真实存在事物(泛指)            学生事物
            对象:    描述的应该真实事物中的具体的!
                                学生事物
                                    高圆圆(具体事物),20岁,喜欢lol
                                    
                                    
                        代码实现:
                        创建对象
                        
                        类名 对象名  = new  类名();
                        对象名.成员变量= 赋值
                        对象名.成员方法() ; 使用这个方法

System.out.println(p1==p2) ;//引用类型比较:比较的是地址值是否相同!
        
        //int a = 10 ;
        //int b = 20 ;
        //System.out.println(a == b); //基本数据类型:比较的是数据值是否相同

将p1赋值p3对象
        //Phone p3 = p1 ;//没有Phone 找不到符号

局部变量和成员变量的区别?
    
    1)代码的书写位置不同
        局部变量:在方法定义中或者是方法声明上的变量
        成员变量:类中方法外
    2)内存中的位置不同
        局部变量:在栈内存中
        成员变量:在堆内存中
        
    3)生命周期不同
        局部变量:随着方法调用而存在,随着方法的调用结束而消失!(使用完毕,立即消失了)
        成员变量:随着对象的创建而存在,随着对象的创建完毕,等待垃圾回收器自动回收而消失!
                            (对象创建完毕,对象可能被继续使用,所以不会立即消失!)
                            
    4)初始化不同:
        局部变量:定义的时候,使用前必须初始化; 要么就是直接初始化,不能没有初始化值!
        成员变量:随着类的加载而存在,存在系统默认初始化,可以不直接赋值! 也可以赋值(不推荐)

基本类型作为形式参数传递,形式参数的改变不会影响实际参数!
    引用类型在作为参数传递,形式参数的改变会直接影响实际参数!(除了String字符串之外)
                数组,类,接口
                
                类:
                    具体类:实际参数传递需要的是该类的对象!(空间地址值)

class Student{
	//定义一个成员方法
	public void study(){
		System.out.println("Good Good Study ,Day Day Up!!!") ;
	}
}

//定义一个类StudentDemo类
class StudentDemo{
	//有一个成员方法:method
	public void method(Student s){//形式参数是Student类型
		s.study() ;	// 形式参数变量s.study():s应该在传递----学生类的对象!
	}
} 
//测试类
class StudentTest{
	public static void main(String[] args){
		//需求:要访问StudentDemo类中method 方法如何访问?
		//创建StudentDemo类的对象
		StudentDemo sd = new StudentDemo() ;
		//method方法中的参数传递:实际参数需要的是Student的具体对象
		Student student = new Student();
		sd.method(student) ; //实际参数是什么?
	}
}

匿名对象:
            没有名字的对象!
            
        格式:
                new 类名() ;
                
        特点:
            1)开发中使用一次即可 
            2)使用完毕,立即被回收,可以结束内存空间!
            这种写法针对:移动端: Android(考虑内存问题)
            3)作为参数传递
            
            pc端:推荐:
                    类名 对象名 = new 类名() ;

class Student{
	//成员方法
	public void study(){
		System.out.println("爱生活,爱Java...") ;
	}
}

class StudentDemo{
	public void method(Student s){
		s.study() ;
	}
}

//测试类中
class NoNameDemo{
	public static void main(String[] args){
		//需求:访问StudentDemo类中method
		//分步骤:
		
		//创建StudentDemo类的对象
		StudentDemo sd = new StudentDemo() ;
		//创建一个具体的学生类对象
		Student student = new Student() ;
		sd.method(student) ;
		
		System.out.println("-----------------------") ;
		
		//链式编程
		//匿名对象(只限于自己玩,开发中正常使用有名字的对象)
		 new StudentDemo().method(new Student()) ;
		 
		
	}
}

 

**高校专业实习管理平台设计与实现** 本设计项目旨在构建一个服务于高等院校专业实习环节的综合性管理平台。该系统采用当前主流的Web开发架构,基于Python编程语言,结合Django后端框架与Vue.js前端框架进行开发,实现了前后端逻辑的分离。数据存储层选用广泛应用的MySQL关系型数据库,确保了系统的稳定性和数据处理的效率。 平台设计了多角色协同工作的管理模型,具体包括系统管理员、院系负责人、指导教师、实习单位对接人以及参与实习的学生。各角色依据权限访问不同的功能模块,共同构成完整的实习管理流程。核心功能模块涵盖:基础信息管理(如院系、专业、人员信息)、实习过程管理(包括实习公告发布、实习内容规划、实习申请与安排)、双向反馈机制(单位评价与学生反馈)、实习支持与保障、以及贯穿始终的成绩评定与综合成绩管理。 在技术实现层面,后端服务依托Django框架的高效与安全性构建业务逻辑;前端界面则利用Vue.js的组件化特性与LayUI的样式库,致力于提供清晰、友好的用户交互体验。数据库设计充分考虑了实习管理业务的实体关系与数据一致性要求,并保留了未来功能扩展的灵活性。 整个系统遵循规范的软件开发流程,从需求分析、系统设计、编码实现到测试验证,均进行了多轮迭代与优化,力求在功能完备性、系统性能及用户使用体验方面达到较高标准。 **核心术语**:实习管理平台;Django框架;MySQL数据库;Vue.js前端;Python语言。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值