成员方法(类方法)的使用细节与注意事项

文章详细阐述了Java中方法的调用机制,包括调用原理、访问修饰符的作用(如private、default、protected、public),返回类型的规定,形参列表的定义,以及方法体的构成。同时,通过示例展示了如何通过对象调用方法,特别是涉及数据库连接和用户登录功能的实现。
摘要由CSDN通过智能技术生成

目录

1.方法的调用机制原理图

2.访问修饰符

3.返回类型

4.形参列表

5.方法体

6.方法调用


1.方法的调用机制原理图

 (类似于C语言中的函数调用)

2.访问修饰符

作用:控制方法的使用范围

访问控制修饰词

同类

同包

不同包中的子类

不同包中的非子类

private

T

F

F

F

default(默认的)

T

T

F

F

protected

T

T

T

F

public

T

T

T

T

3.返回类型

  1. 一个方法最多有一个返回值,可以在方法中使用数组返回多个结果
  2. 返回类型可以为任意类型,包含基本类型或引用类型(数组,对象
  3. 如果方法要求有返回数据类型,则方法体中最后的执行语句必须为return值;而且要求返回值类型必须和return的值类型一致或兼容(可以强制转换)。
  4. 如果方法是void,则方法体中可以没有return语句或者只写return ;。

import java.util.*;
public class main {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		     Profit today =new Profit(); 
		     int[] infoArr=today.Getinfo(900,200);
		     System.out.println("today's profit is "+infoArr[0]);
		     System.out.println("today's flow is "+infoArr[1]);
	}
}
 class Profit {
    public int income;
    public int cost;

    public Profit() {
        this.income=income;
        this.cost=cost;
    }
    
    //在方法中借用数组返回多个数据
    public int[] Getinfo(int income, int cost) {
        int[] Arr=new int[2];
        Arr[0]=income-cost;
        Arr[1]=income+cost;
        //返回类型可以是基本类型或者引用类型(数组,对象)
        return Arr;
    }
   
}

4.形参列表

  1. 一个方法可以有0个参数,也可以有多个参数,中间用逗号隔开
  2. 参数类型可以为任意类型,包含基本类型或引用类型(数组或者对象)
  3. 调用带参数的方法时,一定对应着参数列表传入相同类型或兼容类型的参数
  4. 方法定义时的参数称为形式参数,简称形参;方法调用时的传入参数称为实际参数,简称实参。形参和实参的类型要一致或兼容、个数、顺序必须一致

5.方法体

方法体里面写完成功能的具体的语句,可以为输入、输出、变量、运算、分支、循环、方法调用,但里面不能再定义方法,即:方法不能嵌套定义

6.方法调用

  1. 同一个类中的方法调用:直接调用即可。
  2. 跨类中的方法A类调用B类:需要通过对象名调用。比如:对象名.方法名(参数);
  3. 特别说明:跨类的方法调用和方法的访问修饰符相关(暂时提一下,后续还会详讲)

package hhhh;
import java.util.*;
import java.sql.*;
import javax.swing.*;
import javax.swing.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class TestLogin{
    public static void main(String[] args){
        UserLogin c = new UserLogin();
        c.connectDatabase();
        c.init();
    }
}
class UserLogin{
    JFrame frame;
    JLabel user;
    JLabel command;
    JTextField username;
    JTextField password;
    JButton login;
    JButton register;
    Connection connection=null;
    Statement statement=null;
    ResultSet resultSet=null;
    String databaseFile="d:/数据用户.accdb";
    String str,s;
    void init(){
        frame = new JFrame("用户登录");
        user = new JLabel("用户");
        command = new JLabel("口令");
        username = new JTextField(10);
        password = new JTextField(10);
        login = new JButton("登录");
        register = new JButton("注册");
        JPanel panel = new JPanel();
        JPanel panel1 = new JPanel();
        JPanel panel2 = new JPanel();
        panel.add(user); panel.add(username);
        panel1.add(command); panel1.add(password);
        panel2.add(login); panel2.add(register);
        Box box = Box.createVerticalBox();
        box.add(panel); box.add(panel1); box.add(panel2);
        frame.add(box);
        frame.setBounds(300,300,400,200);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        register.addActionListener((e)->{
        	String detail="(0,'username.getText()',' password.getText()','',0)";
        	try {statement=connection.createStatement();
        		int ok=statement.executeUpdate("insert into 心情日记用户信息 values"+detail);
        		 resultSet=statement.executeQuery("select *from 心情日记用户信息");
        	}
        	catch(SQLException ei){
        		System.out.println("记录中的用户名的值不能重复"+ei);
        		
        	}
        });
        login.addActionListener((e)->{
            str = username.getText();
            s = password.getText();
            if(s.equals("")||str.equals("")){
                JOptionPane.showMessageDialog(null,"用户或口令不能为空!",null,JOptionPane.INFORMATION_MESSAGE);
            }else {
                boolean flag = query(str, s);
                if (flag == true) {
                    JOptionPane.showMessageDialog(null, "登录成功!", null, JOptionPane.INFORMATION_MESSAGE);
                } else
                {
                    JOptionPane.showMessageDialog(null, "用户或口令不正确!", null, JOptionPane.INFORMATION_MESSAGE);
                    username.setText("");
                	password.setText("");
                }
            }
        });
    }
    void connectDatabase(){
        try{         //加载驱动并连接数据库
            Class.forName("com.hxtt.sql.access.AccessDriver");
            connection = DriverManager.getConnection(
                    "jdbc:Access:///"+databaseFile);//建立数据库连接
        }
        catch(Exception e){
            JOptionPane.showMessageDialog(null, "数据库连接失败!");
        }
    }
    public boolean query(String userNumber,String userPassword){
        boolean flag=false;
        if(connection==null)
            connectDatabase();      
  if(connection!=null){
            try{
                statement=connection.createStatement();
                String sql="select * from  心情日记用户信息 where 用户名='";
                sql+=userNumber+"' and 密码='"+userPassword+"'";
                resultSet=statement.executeQuery(sql);
                flag=resultSet.next();
                resultSet.close();
                statement.close();
            }
            catch(Exception e){
                JOptionPane.showMessageDialog(null, "SQL语句语法错误!");
            }
        }
        return flag;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值